ssh直接带密码登录Linux,Linux自动密码登陆利器sshpass
通过ssh登陆其他机器时,需要手动输入密码,批量操作多台机器时,非常不便;而借助expect来设置自动输入密码,实现起来也略显复杂。sshpass可以非常方便地解决自动密码登陆的问题,其常见用法为:sshpass -p ${yourpassword} ssh ${username}@${ip} "ls -al 0其中${username}@${ip}是要登录的机器账号和地址,${yourpassw
通过ssh登陆其他机器时,需要手动输入密码,批量操作多台机器时,非常不便;而借助expect来设置自动输入密码,实现起来也略显复杂。
sshpass可以非常方便地解决自动密码登陆的问题,其常见用法为:
sshpass -p ${yourpassword} ssh ${username}@${ip} "ls -al 0
其中${username}@${ip}是要登录的机器账号和地址,${yourpassword}是该机器的密码。
不过,sshpass一般不是linux系统的标配,需要手动安装。安装起来也比较简单,步骤如下(root账号下):
cd sshpass-1.05
./configure
make && make install
安装成功后即可直接通过sshpass命令使用。
下面是通过sshpass来自动遍历多台机器根目录的shell脚本示例:
#!/bin/bash
if [ $# -ne 0 ]
then
echo "Usage: $0"
exit 1
fi
mypass="abc123@#$"
ips=(10.71.48.125 10.71.48.126 10.71.48.127 10.71.48.128)
for ip in ${ips[@]}
do
echo "process ip:${ip}"
sshpass -p ${mypass} ssh root@${ip} "ls -al / 0
done
exit 0
注意:ssh第一次登录是,可能会出现下面的提示,这会导致sshpass使用失效, 返回错误码6。
The authenticity of host 'xxxxxx' can't be established
RSA key fingerprint is xxxx
Are you sure you want to continue connecting (yes/no)?
这时候可以vim打开/etc/ssh/ssh_config,添加下面的命令
StrictHostKeyChecking no
这样的话,无论ssh是否第一次登录,sshpass都可以正常执行了。
更多推荐
所有评论(0)