【问题标题】:How to add a passphrase into a script for a scp command如何将密码短语添加到 scp 命令的脚本中
【发布时间】:2019-09-10 07:15:54
【问题描述】:

我有一个脚本,它应该简单地将一些文件从服务器 A 复制到服务器 B。为此,在脚本运行期间,我被要求手动输入密码。我的问题是我怎样才能自动化,所以密码是自动添加的?

scp -i ${SCPKEY} ${SCPFILETOCOPY} ${SCPUSER}@${SCPDEST}

这是我在脚本中使用的命令示例

我在网上找不到任何解决方案。我尝试使用sshpass,但它不起作用...

问题基本上在于 2 方身份验证。

提前感谢您的所有帮助!

【问题讨论】:

标签: linux bash shell


【解决方案1】:

如果您使用的是公私密钥对身份验证(查看您列出的命令),那么您有 2 个选项:
1.(推荐安全):在使用你的脚本之前使用ssh-agent,这样你就必须在你的交互会话中提供一次密钥对密码。只要会话处于打开状态,您的脚本就会在不询问密钥密码的情况下运行。

$ ssh-agent bash
$ ssh-agent add

然后运行您的脚本。
2.(不推荐安全性)保存您的私钥未加密,即没有密码,那么您的脚本即使不在交互式终端会话中也可以工作。缺点当然是任何可以在服务器上读取您的目录的人都可以窃取私钥。

【讨论】:

  • 感谢您的帮助,有趣的是,使用代理脚本运行一次而没有错误,但随后我得到权限被拒绝作为来自接收服务器的响应......当我检查列表时使用命令的代理: ssh-add -l 我得到“无法打开与您的身份验证代理的连接”......奇怪......
  • 很可能你的脚本在完成后确实通过exit/break从循环等注销,这将关闭以ssh-agent bash打开的shell会话,基本上关闭ssh-agent
猜你喜欢
  • 1970-01-01
  • 2011-10-31
  • 1970-01-01
  • 2014-01-04
  • 1970-01-01
  • 2018-03-28
  • 2013-11-24
  • 1970-01-01
  • 2022-01-19
相关资源
最近更新 更多