当我通过 SSH 进入 OS X 时,我没有钥匙串。当我使用终端时,我有

当我通过 SSH 进入 OS X 时,我没有钥匙串。当我使用终端时,我有

脚步

  1. 在我的 Windows 桌面上打开 PuTTY。
  2. 通过 SSH 进入我的 MacBook Pro。
  3. cd 到 github 克隆目录
  4. $ git push

预期的

Everything up-to-date

实际的

Enter passphrase for key '/Users/whit537/.ssh/github':

笔记

  • github 密钥在 Keychain Access 中列出。
  • 我可以在 Keychain Access 中显示其密码。
  • 我可以在 PuTTY 提示符下成功使用此密码。
  • 我在 MacBook 上的终端窗口中获​​得了预期的结果。
  • uname -a:达尔文 chad.whitacre 10.7.0 达尔文内核版本 10.7.0:2011 年 1 月 29 日星期六 15:17:16 PST;root:xnu-1504.9.37~1/RELEASE_I386 i386

更新

2011-04-12:我security通过有关的侧边栏(发帖时没有在可能的答案列表中注意到它)。我尝试运行,security unlock-keychain但得到的结果相同。似乎应该有某种方法可以做到这一点。实际上,有两个密钥有问题,它们是长密码,而不是短密码,我白天经常需要它们。所以我有动力去彻底解决这个问题。

2011-04-13:这听起来很有希望。我/tmp/launch-*****/Listeners在 MacBook 上看到了该文件。下次我在 PC 上时,我会尝试SSH_AUTH_SOCK在我的 PuTTY 会话中进行设置。如果成功,我会查看一个.profile钩子以自动发现当前启动会话。

答案1

您应该能够像这样在终端中解锁您的钥匙串:

security unlock-keychain -p <YourPassword> ~/Library/Keychains/login.keychain

如果您不想提示输入密码,您可以将密码存储在文件中,然后执行以下命令:

security unlock-keychain -p `cat ~/.file_with_your_password` ~/Library/Keychains/login.keychain

请注意,将你的钥匙串密码存储在文件中会有一些与安全相关的缺点,所以你必须自己决定这是否适合你。

我希望这有帮助

答案2

您的钥匙串与 OS X 的图形登录绑定。当您本地登录计算机时,它会打开您的钥匙串。终端及其内部运行的 bash 知道您的钥匙串。

当您通过 PuTTY 远程登录时,您的钥匙串不会打开,PuTTY 和 bash 也不知道这一点 - 即使您也在本地登录。它们之间的链接不存在。

很抱歉,但当您通过 PuTTY 登录时,您必须输入密码。

除非有人了解 OS X 钥匙串系统的内部结构,并能想出某种方法在 PuTTY 连接会话中手动放置该链接,但在我看来,这可能比偶尔输入密码要麻烦得多。

答案3

正如我所描述的这个答案,你还需要运行

eval `ssh-agent -s`

除了解锁钥匙串之外。

相关内容