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-add1而不是0。由于未创建文件,因此我的权限显然存在一些问题。知道我该如何解决吗?该目录~/.ssh存在(为空),但执行该操作时不会显示ls -l