ssh-add 要求输入密码

ssh-add 要求输入密码

我遇到了一个新的 ssh 密钥问题。多年来,我已经在 Heroku、Git 和其他服务器上成功使用了它们,因此我无需输入密码即可登录。

几周前,我无法将我机器上的 git 存储库推送到我的 Heroku,它响应了“权限被拒绝(公钥)”。

嗯。除了这个 Heroku 函数之外,其他一切都仍然有效。所以我

 ssh-keygen -t rsa -C "newHeroku"

没有密码(按回车键,密码为空)。因此我输入:

 sudo chmod 600 ~/.ssh/newHeroku*

然后:

ssh-add ~/.ssh/newHeroku.pub

返回密码短语要求它退出且无错误。下一步是:

 ssh-add /Users/sam/.ssh/newHeroku.pub

为了验证它是否“实时”,我输入:

 ssh-add -l

输出仍为 The agent has no identities。好的,为了消除变量,我重复密钥生成过程,但输入新密钥的密码。我通过 ssh-add 添加新密钥并按预期获得“输入密码”。这就是为什么我在这里发帖而不是在 Heroku 博客上发帖因为我使用的密码短语一直被拒绝,所以 ssh-add 失败了。虽然我在其他地方使用密钥都没有问题,但似乎密码短语出了问题,因为尽管我没有收到任何错误,但在需要密码短语的那个上却会出错。一个问题,当我尚未生成密码时,我应该期待 ssh-add 的密码请求吗?有人认为这是一个线索,我提供了它。

或者我对 ssh-add 的作用了解不多。这不是我第一次问愚蠢的问题。另外,我使用的是 Lion,在此期间的几周内除了应用程序更新外没有更新过任何系统更新。

答案1

命令

ssh-add ~/.ssh/newHeroku.pub

我觉得这不对。你试图解锁你的公钥,而你应该解锁你的私钥(受保护的)。所以,试试

ssh-add ~/.ssh/newHeroku

如果这确实是您的私钥的文件名。

答案2

是的,一位用户看到了这个,并分享了使用 ssh-add 的 -K 选项将我的密钥添加到 OS X 钥匙串中。之后,heroku 的表现与以前一样,与其他密钥一样。

答案3

确保 ssh-agent 确实正在运行。ssh-add 仅将您的密钥添加到代理,如果代理未运行,它将不起作用。

您还可以结帐http://www.funtoo.org/wiki/Keychain这是一个非常好的工具,它在第一次启动 shell 时将您的 ssh 和 gpg 密钥添加到相应的代理。

相关内容