python 中sshpass的使用

 

如何用SSH连接远程服务器有两种方式

1.利用远程软件控制:sshclient、Puttty、secureCRT等

2、终端命令 ssh -p 22 root@服务器ip  密码需要手工交互式输入(22: 端口号 root: 用户名)

    ssh登陆不能在命令行中指定密码。sshpass的出现,解决了这一问题。sshpass用于非交互SSH的密码验证,可以 -p 参数指定明文密码,然后直接登录远程服务器,支持密码从命令行、文件、环境变量中读取。

 

其默认没有安装,需要手动安装,方法如下:

sshpass下载地址:http://sourceforge.net/projects/sshpass/ 下载为一个 tar.gz的压缩包。

$ tar -zxvf sshpass-1.05.tar.gz

$ cd sshpass-1.05

$ ./configure --prefix=/opt/sshpass #指定安装目录

$ make

$ make install

$ cp /opt/sshpass/bin/sshpass /usr/bin/

 

输入命令 sshpass 如下提示即安装成功:

 

2.用法介绍

# 免密码登录
$ sshpass -p password ssh username@host
sshpass -p A123456 ssh root@192.168.56.102
#从文件获取密码
$sshpass -f userpasswd.txt  ssh root@192.168.56.102
#从环境变量获取密码
 $> export SSHPASS="password"
 $> sshpass -e ssh username@x.x.x.x 
# 远程执行命令 $ sshpass -p password ssh username@host <cmd> 
# 通过scp上传文件 $ sshpass -p password scp local_file root@host:remote_file # 通过scp下载文件 $ sshpass -p password scp root@host:remote_file local_file
# 循环执行多台机器的命令
for in $(cat /root/1.txt)
do
echo $i
sshpass -p123456 ssh root@$i 'ls -l'
done
 

忽略RSA Key检查信息

第一次认证一般会有RSA key检查的提示:

The authenticity of host ’10.x.x.x (10.x.x.x)' can't be established.
RSA key fingerprint is a4:eb:8c:7d:2a:ef:d6:1c:a3:0c:e8:e5:00:d2:eb:60. Are you sure you want to continue connecting (yes/no)?

可以使用-o StrictHostKeychecking=no选项来忽略key检查信息。sshpass -p "$SSH_PASSWD" ssh root@"$host" -o StrictHostKeyChecking=no "$@" 2>/dev/null 

 

转载于:https://www.cnblogs.com/yoyo008/p/9488169.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值