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


20

我刚刚安装了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:~$ 

有任何想法吗?

Answers:


26

来自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以获取更多信息。


是的,我没有这些文件,并且退出值为ssh-add1而不是0。由于未创建文件,因此我的权限显然存在一些问题。知道我该如何解决吗?该目录~/.ssh存在(为空),但执行该操作时不会显示ls -l
bjorgvin

我运行了此命令,ssh-keygen -q -t rsa -N 'password' -f ~/.ssh/id_rsa所以ssh-keygen帮了忙,谢谢。
bjorgvin

1
这为我提供了正确方向的提示。我有多个ssh密钥,并且首先必须使用ssh-add <keyname>添加适当的密钥。然后,它像一个烟囱。thx
paulroho 2014年

3
出于某种原因,运行时,我没有任何输出ssh-add输入密码后,(这是根据失败$?returing 1.我想chmod 600 ~/.ssh/id_rsa* 没有运气。我产生从从头开始一个新的密钥ssh-keygen,然后它的工作。伤心,但至少它是好的,现在(失败的密钥是使用生成的ssh-keygen -t rsa -b 4096 -C "your_email@example.com"ssh-keygen这次我只运行了它。)
GabLeRoux 2015年

1
我必须按此顺序执行以下操作:(如有必要,生成新的ssh密钥,并确保将.pub密钥添加到github),然后 cd ~/.ssh && ls -lah查看.ssh文件夹中的读/写权限,更改所有密钥),chmod 400 myKey那么ssh-add **ABSOLUTE**pathToKey 如果您不添加绝对路径,它将无法正常工作。然后,使用ssh -vT git@github.com
jungledev

3

除上述注意事项外,我发现如果您使用备用Shell,则可能需要对其进行配置以加载ssh-agent。例如,在Zsh中,必须将添加ssh-agentplugins.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)

通过此处的说明将ssh-agent插件添加到.zshrc中
Kariem '18年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.