如何将密码传递给scp?

新手上路,请多包涵

我知道不建议这样做,但是是否可以将用户密码传递给 scp?

我想通过 scp 复制一个文件作为批处理作业的一部分,而接收服务器当然需要密码,不,我不能轻易地将其更改为基于密钥的身份验证。

原文由 Argelbargel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 621
2 个回答

您可以使用诸如 expect 之类的工具编写脚本(也有方便的绑定,例如用于 Python 的 Pexpect )。

原文由 Pat Notz 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 sshpass

 sshpass -p "password" scp -r user@example.com:/some/remote/path /some/local/path

或者密码不会显示在 bash 历史记录中

sshpass -f "/path/to/passwordfile" scp -r user@example.com:/some/remote/path /some/local/path

上面将路径的内容从远程主机复制到您的本地。

安装 :

  • ubuntu/debian
    • apt install sshpass
  • centos/fedora
    • yum install sshpass
  • mac w/macports
    • port install sshpass
  • mac w/brew
    • brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb

原文由 KevinS 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题