bash脚本中的ssh命令和密码请求

时间:2014-03-22 20:03:54

标签: bash ssh sftp

我正在尝试创建一个脚本,它将通过ssh连接与另一个文件夹同步。我想要做的是通过ssh将我的本地文件夹与文件夹同步,然后执行ssh登录。对于这两个命令,我需要输入相同的密码,这有点烦人,所以我试图为它创建一个脚本,将我的密码放入一个临时变量,并将该变量传递给它所要求的两个点。这就是我所拥有的。

read -s -p "Enter Password: " mypassword && echo "$mypassword" 
| rsync -vz -r `~/Desktop/Market_Maker/Market_Maker XXX@XXX.edu:~/281_Projects 
&& echo | "$mypassword" ssh XXX@XXX.edu`

这最终会给我3个密码提示,但根本不起作用。脚本有什么问题?

1 个答案:

答案 0 :(得分:2)

考虑使用sshpass存储特定登录的密码。安装完成后,您可以运行命令:

sshpass -p 'PASSWORD' ssh XXX@XXXX.edu

登录服务器。我认为这可能是您正在寻找的功能。您还可以考虑将RSYNC_PASSWORD变量设置为脚本中的密码。

如果您想避免在脚本中存储密码,可以使用以下方式提示:

read -s RSYNC_PASSWORD

这将存储脚本执行期间的密码。