【问题标题】:ssh commands and password requests in a bash scriptbash 脚本中的 ssh 命令和密码请求
【发布时间】:2014-04-30 05:51:51
【问题描述】:

我正在尝试制作一个脚本,该脚本将通过 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 个密码提示,但根本不起作用。脚本有什么问题?

【问题讨论】:

  • 更简单的选择是使用 ssh 密钥并省略密码。您不能使用echo 将密码传递到提示符中。
  • 我的学校计算机出于安全原因阻止了 ssh 密钥(据我所知)
  • 您正在尝试的不安全性要高出一百倍,而且很可能违反了您学校的安全政策。

标签: bash ssh sftp


【解决方案1】:

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

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

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

如果您想避免将密码存储在脚本中,您可以使用以下命令提示输入:

read -s RSYNC_PASSWORD

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

【讨论】:

  • 那么我将不得不将我的密码存储在脚本中,如果可以的话我宁愿避免
猜你喜欢
  • 2011-06-14
  • 1970-01-01
  • 2013-05-31
  • 2016-11-15
  • 2016-11-09
  • 2021-01-28
  • 2021-06-05
相关资源
最近更新 更多