ssh-add 命令不会将我的身份添加到 ssh-agent

ssh-add 命令不会将我的身份添加到 ssh-agent

我刚刚安装了 ubuntu 13.10,我正准备将我的身份添加到我的 ssh 代理中,因此我打开了一个终端并执行了此操作

bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ ssh-add
bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ 

有任何想法吗?

答案1

man ssh-add

ssh-add 将私钥身份添加到身份验证代理 ssh-agent(1)。当不带参数运行时,它会添加文件 ~/.ssh/id_rsa、~/.ssh/id_dsa、~/.ssh/id_ecdsa 和 ~/.ssh/identity。[...]

身份文件不应被除用户之外的任何人读取。请注意,如果身份文件可供其他人访问,ssh-add 将忽略它们。

因此,由于The agent has no identities.错误,您可能没有这些文件,或者其他人可以访问这些文件。您可以使用以下命令检查这些文件:

ls -l ~/.ssh

另外,运行ssh-add命令后,运行echo $?以查看上一个命令的错误状态。如果退出状态返回 0,则表示命令执行成功。如果退出状态返回非零值,则表示命令执行失败。

man ssh-add了解更多信息。

答案2

除了上述注意事项之外,我发现如果您使用的是备用 shell,则可能需要对其进行配置以加载 ssh-agent。例如,在 Zsh 中,必须ssh-agentplugins中添加.zshrc

此方法在 Ubuntu 17.10 和最新的 Zsh 上非常有效

其他人发现,使用id_ed25519密钥,rsa无需插件即可工作。添加到后ssh-agent,使用以下命令~/.zshrc重新启动 shellexec "$SHELL"并执行:ssh-add ~/.ssh/id_ed25519

Enter passphrase for ~/.ssh/id_ed25519: 
Identity added: ~/.ssh/id_ed25519 (user@host)

答案3

正如原帖所说评论

ssh-keygen -q -t rsa -N 'password' -f ~/.ssh/id_rsa我运行了这个命令man ssh-keygen有帮助,谢谢。

答案4

就我而言,我必须创建/home/ec2-user/.ssh/config具有权限的文件600,并且

Host * 
  IgnoreUnknown UseKeychain
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile /home/ec2-user/.ssh/[my_private_key]

使 ssh 工作的内容。

相关内容