我正在创建一个尝试连接到远程服务器的bash脚本,但是需要输入密码,我编写了以下脚本:
ssh HostIP 期待"密码:" 发送"密码"
但是它连接并提供了" user @ HostIP的密码:",所以send命令没有在屏幕上写任何密码....我该怎么办才能让它工作?
答案 0 :(得分:1)
在文件或脚本中编写密码绝对不是一个好习惯。为什么不尝试从一台服务器到另一台服务器的密码减少认证。
简单步骤:
I-从命令ssh -keygen -t rsa
生成RSA公钥和私钥到您的server1。
II-现在在您的另一台服务器(server2)的主目录中创建.ssh
目录并获得正确的权限。
III-在server2上创建名为authorized_keys
的文件。
IV-在server2上打开名为authorized_keys
的文件,并将名为id_rsa.pub
的文件从server1复制到server2。
V-现在将权限设置为640到~/.ssh/authorized_keys
。
VI-现在尝试登录到server2:
ssh user@server2
这是一个很好的链接,可以告诉你相同的内容。
https://www.tecmint.com/ssh-passwordless-login-using-ssh-keygen-in-5-easy-steps/
一旦使用ssh
从server1到server2设置无密码身份验证,您就可以在脚本中执行要在另一台服务器上运行的所有ssh
命令。
答案 1 :(得分:0)
您可以使用 sshpass 执行此操作,如:
sshpass -p **your_password** ssh user@HostIP
如果尚未安装sshpass,您可以安装它并在bash控制台中进行第一次连接,以确认"是确认"