如何从bash脚本输入密码?

时间:2018-01-28 12:04:30

标签: linux bash ssh

我正在创建一个尝试连接到远程服务器的bash脚本,但是需要输入密码,我编写了以下脚本:

ssh HostIP 期待"密码:" 发送"密码"

但是它连接并提供了" user @ HostIP的密码:",所以send命令没有在屏幕上写任何密码....我该怎么办才能让它工作?

2 个答案:

答案 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控制台中进行第一次连接,以确认"是确认"