sshpass命令

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

基本语法

sshpass -p 'password' ssh user@hostname command

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

sshpass -p password ssh [email protected]

2、远程执行脚本

sshpass -p password ssh [email protected]   "sh /path/to/script.sh"

3、执行命令

sshpass -p password ssh [email protected] "ls"  //单条命令 

sshpass -p password ssh [email protected] "cd /home/;pwd;ls"  //多条命令

4、拷贝文件

sshpass -p password scp [email protected]:/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

你可能感兴趣的:(linux)