需求:需要用一台管理机批量对运维的集群操作,配置免密登陆后可以写脚本实现,有开源的工具PSSH省了写脚本。
工具下载地址:
如:wget https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gz #可以去主站找最新的版本
一、安装工具:
wget https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gz
tar -xf pssh-2.3.1.tar.gz
cd pssh-2.3.1/
python setup.py build
python setup.py install
pssh --version
pssh --help
PSSH批量登陆操作前提条件是先配置免密登陆,通过ssh命令配置免登陆
二、 免密登陆配置
免密登陆原理:B免密登陆A,需要把B的公钥先copy到A服务器。主要用于身份验证,判断登陆者身份的真实性。使用私钥加密之后,用对应的公钥解密从而验证身份真实性。
A要验证B是否是真实用户流程:
1、B将自己公钥给A(b发起ssh登陆请求,a 收到后给B发送一串chanllenge字符)
2、B将chanllenge字符用自己私钥加密传送给A
3、A根据B的公钥解密,如果成功则为真实身份用户
配置方法:
#B机器:
cd ~/.ssh # mac: cd .ssh
ssh-copy-id -i ./id_rsa.pub [email protected] #A机器的地址,需要输入A机器的密码
ssh [email protected] #不要输入密码就可以登陆了。、
操作完成后可以在A机器上找到B的公钥,可以与B机器上对比下是否一样
cat ~/.ssh/authorized_keys
三、执行pssh命令
pssh -P -h ip.txt "ifconfig" #-P 打印在远程服务器执行结果,-h指定远程服务器的ip list
root@hkali:~# cat ip.txt
116.x.x.x #格式可以
[email protected]:22 #格式可以