如果您正在为RSA密钥提供正确的密码,是否可以在本地进行检查?
我最近在向github推送一些提交时遇到了麻烦,因为推送提示输入密码然后验证失败。我验证了github在我的id_rsa
目录中有~/.ssh
文件的正确公钥,我确认我可以使用Github进行身份验证(如果你ssh git@github.com
它会告诉你已经过身份验证但是他们不提供shell访问权限,所以我知道问题出在我的最后,而不是Github。
(我应该指出,此时我只是使用git format-patch
将我的提交作为文件,然后吹掉我的工作存储库并从Github重新克隆,使用git am
重新应用补丁,并毫无困难地推,所以不管原来的问题是什么,它都是固定的。)
这让我想知道:我怎么知道远程主机的身份验证问题是我向我的私钥提供了错误的密码,还是远程主机没有识别我的密钥?有没有办法在本地使用私钥进行测试身份验证,而不尝试连接到远程主机?
答案 0 :(得分:44)
或者如此指出: How can I test my ssh-keys locally without a server
你可以这样做:
ssh-keygen -y
这不需要任何服务器(适用于Windows上的msysgit)。
答案 1 :(得分:19)
您可以运行ssh-add
将密钥添加到当前ssh-agent
。这将提示您输入密码。
通常,当ssh-agent
正在运行,并且您向其添加密钥时,当您连接到识别该密钥的主机时,您不必再解锁密钥。如果这不是您想要的,只需运行ssh-add -d
即可在您完成测试时将其从ssh-agent
移除。