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

меры

  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 в моей сессии замазки. Если это сработает однажды, я посмотрю о .profile подключиться, чтобы автоматически обнаружить текущий сеанс запуска.

3 ответа

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

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

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

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

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

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

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

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

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

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

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

eval `ssh-agent -s`

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

Другие вопросы по тегам