我刚刚安装了 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-agent
在plugins
中添加.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 工作的内容。