linux 批量建立信任关系

简介: linux 批量建立信任关系

1.首先,需要检查expect是否安装:rpm -qa|grep expect

2.然后,在操作机上创建公钥:ssh-keygen 一路回车即可

3.创建好之后到/home/barfoo/.ssh/下就可以看到id开头的2个文件,其中id_rsa.pub就是公钥文件,

4.需要做的就是将这个文件传送给其他机器:ssh-copy-id -i /home/barfoo/.ssh/id_rsa.pub barfoo@ip

5.最后ssh root@ip就实现无密码登录了

6.以下是脚本,根据自己实际情况做修

#2017-05-18
#批量ssh认证建立  
  
for p in $(cat /home/barfoo/ip.txt)  #注意ip.txt文件的绝对路径  
do  
ip=$(echo "$p"|cut -f1 -d":")       #取ip.txt文件中的ip地址  
password=$(echo "$p"|cut -f2 -d":") #取ip.txt文件中的密码  
  
#expect自动交互开始  
expect -c "   
spawn ssh-copy-id -i /home/barfoo/.ssh/id_rsa.pub barfoo@$ip  
        expect {   
                \"*yes/no*\" {send \"yes\r\"; exp_continue}   
                \"*password*\" {send \"$password\r\"; exp_continue}   
                \"*Password*\" {send \"$password\r\";}   
        }   
"   
done  

1. ip.txt文件里面ip和密码写法

   172.16.4.27:barfoo1 
   172.16.4.28:barfoo2

也可以这么写

#!/bin/bash
for i in `seq 101 150`
do
/usr/bin/expect << EOF
spawn ssh-copy-id bfadmin@192.168.100.$i
expect
 {
"yes/no" { send "yes\r"; exp_continue; }
"*password" { send "P@ssw0rd\r" }
}

expect "~$ "
send "exit\r"
expect eof

EOF
done

下载PSSH安装包

wget  http://www.theether.org/pssh/pssh-1.4.3.tar.gz #下载PSSH安装包
tar zxvf pssh-1.4.3.tar.gz
 cd pssh-1.4.3
wget 'http://peak.telecommunity.com/dist/ez_setup.py'
python ez_setup.py 
python setup.py install

安装好后执行

   pssh -P -h ip.txt 'uptime
目录
相关文章
|
7月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 建立ext2文件系统 mke2fs命令使用教程
【Shell 命令集合 磁盘维护 】Linux 建立ext2文件系统 mke2fs命令使用教程
95 2
|
7月前
|
存储 安全 Linux
【Shell 命令集合 磁盘维护 】Linux 在特定的分区上建立 linux 文件系统 mkfs命令使用教程
【Shell 命令集合 磁盘维护 】Linux 在特定的分区上建立 linux 文件系统 mkfs命令使用教程
95 0
|
6月前
|
关系型数据库 MySQL Linux
Linux系统中Mysql5.7建立远程连接
Linux系统中Mysql5.7建立远程连接
58 0
|
7月前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 建立串行连接 cu命令 使用指南
【Shell 命令集合 网络通讯 】Linux 建立串行连接 cu命令 使用指南
65 0
|
IDE Linux Shell
linux中建立pycharm快捷方式
linux中建立pycharm快捷方式
|
Linux 开发工具 数据安全/隐私保护
如何建立Linux与git的连接?
建立连接三板斧: add , commit ,push Linux与git远程连接的方法: 1.设置全局的用户名和邮箱 git config – global user.name “你的用户名” git config – global user.email “你的邮箱”
|
网络协议 Linux 数据库
Linux TCP作为服务器连接方式:建立稳健高效的服务器通信
在Linux服务器开发中,TCP(Transmission Control Protocol)是一种常用的传输层协议,它为服务器与客户端之间的连接提供可靠的、面向连接的通信方式。本文将深入探讨Linux TCP作为服务器连接方式的工作原理,包括服务器端的建立、连接管理和数据传输,以帮助读者建立稳健高效的服务器通信。
484 0
|
关系型数据库 MySQL Shell
linux下建立mysql数据库备份脚本
将以上内容放到text文件中,将后缀名修改为.sh文件。
|
存储 Unix Linux
Linux设备驱动程序(二)——建立和运行模块
本章介绍所有的关于模块和内核编程的关键概念,通过一个 hello world 模块来认识驱动加载的流程及相关细节。
138 0
|
Ubuntu Linux Apache
Linux基础命令---htdigest建立和更新apache服务器摘要
htdigest htdigest指令用来建立和更新apache服务器用于摘要认证的存放用户认证信息的文件。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS。 1、语法 htdigest [-c] passfile realm username 2、...
1091 0