【问题标题】:SCP on crontab still asking passphrase after key exchangecrontab 上的 SCP 在密钥交换后仍然询问密码
【发布时间】:2017-04-25 14:23:17
【问题描述】:

我需要在crontab 中执行“SCP”命令而不输入密码。 所以我已经创建了密钥

ssh-keygen -t rsa

然后将id_rsa.pub文件转移到host_dest

之后,将id_rsa.pub的内容复制到~/.ssh/authorized_keys

$ cat id_rsa.pub >>~/.ssh/authorized_keys
$ chmod 700 ~/.ssh/authorized_keys

如果我尝试执行 SCP,仍然需要密码。

我也尝试过使用

ssh-add ~/.ssh/id_rsa

但在这种情况下,我也需要输入密码。 有什么建议吗?!?

【问题讨论】:

  • 在 /etc/sshd_config 文件中是否启用了 PubkeyAuthentication?
  • 是的 PubkeyAuthentication 是 #AuthorizedKeysFile %h/.ssh/authorized_keys
  • RSAAuthentication = 是吗? security.stackexchange.com/a/71581
  • 是的 RSAAuthentication 是的
  • 我发现:您的私钥文件(在本地机器上)必须只能由您读写:rw-------,即 600 unix.stackexchange.com/a/36687

标签: ssh crontab scp


【解决方案1】:

密码不是密码。

您的密钥已加密,除非您提供密码,否则它会要求您提供密码。 Cronjob 无权访问在会话中运行的 ssh-agent。你有两个选择:

  • Remote the passphrase from the key -- 安全性较低,但更易于自动化

    ssh-keygen -p -P old_passphrase -N "" -f /path/to/your.key
    
  • 使用sshpass 并在命令行上提供密钥的密码(以明文形式存储密码也不安全)。

【讨论】:

  • 如何实施您的第一个建议?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-01
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 2016-01-28
相关资源
最近更新 更多