我刚刚安装了 ubuntu 13.10,我正准备将我的身份添加到我的 ssh-agent 中,所以我打开了一个终端并执行了此操作
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:~$
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Rad*_*anu 31
来自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
Run Code Online (Sandbox Code Playgroud)
此外,在您运行ssh-add命令后,运行echo $?以查看上一个命令的错误状态。如果退出状态返回 0,则该命令已成功执行。如果退出状态返回非零值,则命令无法执行。
查看man ssh-add更多信息。
除了上述注意事项之外,我发现如果您使用的是备用 shell,则可能需要对其进行配置以加载 ssh-agent。例如,在 Zsh 中,必须添加ssh-agent到pluginsin .zshrc。
此方法在使用最新 Zsh 的 Ubuntu 17.10 上效果很好
其他人发现使用id_ed25519密钥可以rsa在没有插件的情况下工作。添加ssh-agent到 后~/.zshrc,重新启动外壳exec "$SHELL"并执行:ssh-add ~/.ssh/id_ed25519
Enter passphrase for ~/.ssh/id_ed25519:
Identity added: ~/.ssh/id_ed25519 (user@host)
Run Code Online (Sandbox Code Playgroud)