Answers:
来自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-keygen -q -t rsa -N 'password' -f ~/.ssh/id_rsa
所以ssh-keygen帮了忙,谢谢。
ssh-add
输入密码后,(这是根据失败$?
returing 1.我想chmod 600 ~/.ssh/id_rsa*
没有运气。我产生从从头开始一个新的密钥ssh-keygen
,然后它的工作。伤心,但至少它是好的,现在(失败的密钥是使用生成的ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
,ssh-keygen
这次我只运行了它。)
cd ~/.ssh && ls -lah
查看.ssh文件夹中的读/写权限,更改所有密钥),chmod 400 myKey
那么ssh-add **ABSOLUTE**pathToKey
如果您不添加绝对路径,它将无法正常工作。然后,使用ssh -vT git@github.com
除上述注意事项外,我发现如果您使用备用Shell,则可能需要对其进行配置以加载ssh-agent。例如,在Zsh中,必须将添加ssh-agent
到plugins
中.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-add
1而不是0。由于未创建文件,因此我的权限显然存在一些问题。知道我该如何解决吗?该目录~/.ssh
存在(为空),但执行该操作时不会显示ls -l