Когда я SSH в OS X, у меня нет моей цепочки для ключей. Когда я использую терминал, я делаю

12

меры

  1. Откройте PuTTY на моем рабочем столе Windows.
  2. SSH в мой MacBook Pro.
  3. перейдите к клону GitHub
  4. $ git push

ожидаемый

Everything up-to-date

фактический

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

Примечания

  • Ключ GitHub указан в Доступе цепочки для ключей.
  • Я могу показать его пароль в Keychain Access.
  • Я могу использовать эту фразу-пароль успешно в приглашении в PuTTY.
  • Я получаю ожидаемый результат в окне терминала на MacBook.
  • uname -a: Darwin chad.whitacre 10.7.0 Darwin Kernel Версия 10.7.0: Сб 29 января 15:17:16 PST 2011; root: xnu-1504.9.37 ~ 1 / RELEASE_I386 i386

Обновления

2011-04-12: я обнаружил этот securityинструмент с помощью вопроса в соответствующей боковой панели (не заметил его в списке возможных ответов при публикации). Я пытался бежать, security unlock-keychainно я получил тот же результат. Кажется, должен быть какой-то способ сделать это. На самом деле речь идет о двух ключах, и это длинные парольные фразы, а не короткие пароли, и они мне часто нужны в течение дня. Так что у меня есть какой-то стимул докопаться до сути.

2011-04-13: Это звучит многообещающе . Я вижу /tmp/launch-*****/Listenersфайл на MacBook. В следующий раз, когда я буду на ПК, я попытаюсь установить настройки SSH_AUTH_SOCKв моем сеансе PuTTY. Если это сработает однажды, я посмотрю о .profileловушке для автоматического обнаружения текущего сеанса запуска.

whit537
источник

Ответы:

18

Вы должны быть в состоянии разблокировать свою цепочку для ключей в Терминале как это:

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

Если вы не хотите запрашивать пароль, вы можете сохранить пароль в файле, а затем выполнить команду следующим образом:

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

Обратите внимание, что хранение вашего пароля цепочки для ключей в файле имеет некоторые недостатки, связанные с безопасностью, как вы можете себе представить, поэтому вы должны решить для себя, если это вариант для вас.

Надеюсь, это поможет

Besi
источник
3
действительно, «некоторые», не делает ли пароль паролем для доступа к цепочке для ключей в виде открытого текста в файле своего рода бессмысленно ...? Тогда вы могли бы также иметь материал, который защищен в связке ключей в виде открытого текста?
TML
... затем следуйте с этим ответом
techraf
3

Ваша цепочка для ключей привязана к графическому логину OS X. Когда вы входите в систему локально, она открывает вашу цепочку для ключей. Терминал, в котором работает bash, знает о вашей цепочке для ключей.

Когда вы входите удаленно через PuTTY, ваша цепочка для ключей не открывается, и PuTTY и bash не знают об этом, даже если вы вошли в систему локально. Связи между ними просто нет.

Прошу прощения, но когда вы входите в систему через PuTTY, у вас возникает необходимость ввести пароль.

Это возможно, если кто-то, кто знает внутреннюю часть системы цепочки ключей OS X, не сможет придумать какой-либо способ вручную установить эту ссылку в вашем сеансе, связанном с PuTTY, но, на мой взгляд, это скорее работа, чем ввод пароля один раз в пока.

Majenko
источник
1
Это длинные парольные фразы для пары ключей, которые я часто использую, поэтому у меня есть стимул открыть механизм связывания, о котором вы говорите.
whit537
2

Как я опишу в этом ответе , вам также нужно запустить

eval `ssh-agent -s`

в дополнение к разблокировке брелка.

orkoden
источник