Когда я SSH в OS X, у меня нет моей цепочки для ключей. Когда я использую терминал, я делаю
меры
- Откройте PuTTY на моем рабочем столе Windows.
- SSH в мой MacBook Pro.
- перейдите к клону GitHub
$ 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`
в дополнение к разблокировке брелка.