【问题标题】:tar over ssh in combination with sshpass与 sshpass 结合使用 ssh 上的 tar
【发布时间】:2016-07-08 22:06:49
【问题描述】:

我(非常)最近发布了this 关于 tar over ssh 的问题。

这个问题现在有了答案,我现在问的是另一个问题。

我运行以下命令将代码从本地计算机推送到将运行它的服务器。

tar -cJf - ./my_folder | ssh user@example 'tar -xJf - -C ./path-to-my_folder/'

我知道使用ssh/scp 我可以使用sshpass -p password 来停止每次要求我输入密码的命令。 请注意,我不能使用其他身份验证方法。

是否可以将sshpass 与我上面的命令结合起来,这样我就不必不断输入密码了?

换句话说我应该如何编辑上述命令以包含sshpass,以便我不必在每次运行上述命令时都输入密码?

编辑:注意以下确实有效

例如

sshpass -p <password> ssh ... blaa blaa
sshpass -p <password> scp ... blaa blaa

【问题讨论】:

  • 你看过以下关于 askubuntu 的帖子吗,askubuntu.com/questions/282319/how-to-use-sshpass
  • @mattias 我没看过,但似乎不相关?
  • 也许我误解了你的问题。你知道如何使用 sshpass,那么问题出在哪里?
  • @mattias 我不明白如何在这种情况下使用它。
  • “我不能使用其他身份验证方法”是什么意思?除非远程服务器通过密码以外的任何方式主动阻止身份验证(这似乎是一个非常愚蠢的想法),否则您始终可以为帐户设置公钥身份验证。

标签: bash ssh tar remote-server sshpass


【解决方案1】:

我认为你可以使用这样的东西:

tar -cJf - ./my_folder | sshpass -p $remote_ssh_password ssh -o StrictHostKeyChecking=no $remote_ssh_username@$remote_web_address "tar -xJf - -C ./path-to-my_folder/"

注意:StrictHostKeyChecking=no 避免提示服务器指纹确认。这可能会造成安全问题:

“因此,如果您想知道您是否正在与正确的服务器(而不是某个冒充者)交谈,那么您“只”需要计算服务器的密钥指纹(从服务器刚刚发送给您的公钥) 并将其与“参考指纹”进行比较。”

更多信息请访问here

【讨论】:

  • 但是为什么要进行严格的主机密钥检查呢?
  • @user3728501 - StrictHostKeyChecking=no 不会要求接受主机密钥,如果它不在 known_hosts 中。没有它,脚本将暂停并要求接受 sshpass 可能会误解。
  • @user3728501 欢迎您。 alvits 已经回答了为什么要进行严格主机密钥检查。如果有效,请不要忘记接受答案。
  • 不要删除主机密钥检查。这是保护您免受 MiTM 攻击的唯一方法。手动验证密钥,即使使用主机密钥检查,它也会以相同的方式工作,您将是安全的(总比抱歉好)。
  • @Jakuje 这是为了避免提示。正是他问的。如果您要对此进行安全评估,为什么不使用 rsa ?无需反对。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-10
  • 1970-01-01
  • 2013-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多