sshpass命令

ssh命令默认不允许以非交互的方式传递密码。sshpass 的出现,解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器。

基本语法

sshpass -p 'password' ssh user@hostname command

1、直接远程连接某台主机

sshpass -p password ssh root@192.168.1.2

2、远程执行脚本

sshpass -p password ssh root@192.168.1.2   "sh /path/to/script.sh"

3、执行命令

sshpass -p password ssh root@192.168.1.2 "ls"  //单条命令 

sshpass -p password ssh root@192.168.1.2 "cd /home/;pwd;ls"  //多条命令

4、拷贝文件

sshpass -p password scp root@192.168.1.2:/home/fklds.txt  ~/

(可以用于服务器之间的文件的分发)

5、解决 ssh 首次链接

解决 ssh 首次链接时,会有 Are you sure you want to continue connecting 询问提示的问题#
当您第一次使用 ssh 连接远程主机时,ssh 命令会提示您确认远程主机的公钥指纹(Are you sure you want to continue connecting ),以确保您连接的是正确的主机。如果您希望避免这个交互式提示,可以在 ssh 命令中添加 -o 选项,并设置参数 StrictHostKeyChecking=no,例如:

sshpass -p 'password'  ssh -o StrictHostKeyChecking=no user@host


上述命令会禁用 ssh 的主机密钥验证,直接建立连接。需要注意的是,这样做可能会存在安全风险,因为无法保证您连接到的是正确的主机,同时也无法检测到中间人攻击等安全问题。

如果您希望永久禁用 SSH 的主机密钥验证,可以在 ssh 配置文件中添加以下配置:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null
上述配置会将 StrictHostKeyChecking 设置为 no,并将 UserKnownHostsFile 设置为 /dev/null,即不再保存已知主机的公钥指纹。这样做同样存在安全风险,需谨慎使用。

=========================================================================

确保在生产环节中密码不会被泄露!!!

参考

https://www.jianshu.com/p/56cde26137b2

https://www.python100.com/html/86119.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值