我正在尝试创建一个脚本,它将通过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个密码提示,但根本不起作用。脚本有什么问题?
答案 0 :(得分:2)
考虑使用sshpass
存储特定登录的密码。安装完成后,您可以运行命令:
sshpass -p 'PASSWORD' ssh XXX@XXXX.edu
登录服务器。我认为这可能是您正在寻找的功能。您还可以考虑将RSYNC_PASSWORD
变量设置为脚本中的密码。
如果您想避免在脚本中存储密码,可以使用以下方式提示:
read -s RSYNC_PASSWORD
这将存储脚本执行期间的密码。