Не могли бы вы рассказать немного больше о том, когда появится запрос пароля? Я спрашиваю, потому что у меня есть ssh-ключ для удаленного сервера, который, я уверяю вас, не совпадает с моим паролем для входа в Mac или чем-то еще, и мне не приходилось вводить пароль для ssh-ключа в течение многих лет . Я могу просто открыть терминал, набрать «ssh <server>», и я там. Я думаю, что сначала установил этот ключ под OSX 10.5. id_dsa, но я не думаю, что это должно иметь значение.
Майкл Х.
У моего id_rsaключа есть пароль.
Сорин
У меня также есть проблема, что я решил это так давно, что не могу точно вспомнить, что я сделал. Но я думаю, что идея состоит не в том, чтобы бежать ssh-add, а просто бежать sshнапрямую. Вы должны получить всплывающее окно с парольной фразой для ключа и с флажком, который позволит вам сохранить его в цепочке для ключей.
Харальд Ханче-Олсен
1
@ Сорин - мой тоже! Я должен был войти в него один раз, давным-давно, и Mac сохранил его для меня с тех пор. Надеюсь, совет Харальда поможет.
Майкл Х.
Вы имеете в виду пароль брелка (то есть пароль для входа в систему) или пароль? Если это последнее, ваши пароли обязательно хранятся в связке ключей? Вы можете проверить это, открыв Keychain Access и ища его в связке ключей входа.
Мэтью Холл
Ответы:
689
В OSX собственный ssh-addклиент имеет специальный аргумент для сохранения ключевой фразы секретного ключа в цепочке ключей OSX, что означает, что ваш обычный логин разблокирует его для использования с ssh. В OSX Sierra и более поздних версиях вам также необходимо настроить SSH, чтобы всегда использовать цепочку для ключей (см. Шаг 2 ниже).
В качестве альтернативы вы можете использовать ключ без ключевой фразы, но если вы предпочитаете безопасность, это, безусловно, приемлемо с этим рабочим процессом.
Шаг 1 - Храните ключ в связке ключей
Просто сделайте это один раз:
ssh-add -K ~/.ssh/[your-private-key]
Введите ключевую фразу-пароль, и вас больше не попросят.
(Если вы используете версию OSX, предшествующую Sierra, то все готово, шаг 2 не требуется.)
Шаг 2 - Настройте SSH, чтобы всегда использовать цепочку для ключей
Похоже, что OSX Sierra убрала удобное поведение сохранения ключей между логинами, и обновление по ssh больше не использует цепочку для ключей по умолчанию. По этой причине вам будет предложено ввести ключевую фразу для ключа после обновления и снова после каждого перезапуска.
Измените ~/.ssh/id_rsaфактическое имя файла вашего личного ключа. Если у вас есть другие закрытые ключи в вашем ~.sshкаталоге, также добавьте IdentityFileстроку для каждого из них. Например, у меня есть одна дополнительная строка IdentityFile ~/.ssh/id_ed25519для второго секретного ключа.
Это UseKeychain yesключевая часть, которая говорит SSH искать в вашей цепочке ключей OSX ключевую фразу.
Это оно! В следующий раз, когда вы загрузите любое ssh-соединение, он попробует указанные вами закрытые ключи и будет искать их парольную фразу в цепочке ключей OSX. Не требуется ввод пароля.
Это почти сработало для меня. У моей цепочки для ключей входа в систему уже была отключена автоматическая блокировка, поэтому ответ Мэтью Санабриа не применялся. Используя ssh-add -K ...добавленные ключи к агенту ssh без запроса пароля, но только для текущего сеанса. После перезагрузки мне пришлось переиздать команду.
Пулсбо
4
@Poulsbo & @Abram - посмотрите мое обновление, Sierra изменила автоматическое поведение, и теперь вам нужно запустить его ssh-add -Aвручную, чтобы загрузить сохраненную цепочку ключей. Некоторые возможные решения упомянуты выше.
@sorin посмотрите обновленный ответ и дайте мне знать, если у вас есть какие-либо отзывы. Спасибо!
trisweb
9
Работает отлично! В моем случае мне нужно было использовать Aфлаг в дополнение к флагу, Kчтобы добавить мои ключи в цепочку для ключей и зарегистрировать в нем кодовую фразу ( ssh-add -AK ~/.ssh/[your-private-key]). Спасибо!
youssman
22
У меня была похожая проблема: меня КАЖДЫЙ РАЗ спрашивали о моей парольной фразе-ключе.
Согласно предложению пользователя "trisweb" выше, я включил эти параметры в ~ / .ssh / config:
Каждый раз вам предлагается ввести пароль, потому что ваша цепочка для ключей входа в систему блокируется после неактивности и / или сна или, в вашем случае, перезагрузки. Есть два способа решить это для вас.
Измените настройки вашей цепочки для ключей входа в систему. Предполагая, что ваш ключ ssh хранится в цепочке для ключей входа в систему.
Открытый доступ к брелку
Выделите брелок «Логин»
Щелкните правой кнопкой мыши или выберите опцию «Логин» брелок
Снимите флажки «Блокировать через X минут бездействия» и «Блокировать во время сна».
Создайте другой ключ SSH без использования ключевой фразы.
Обратите внимание, что при вызове ssh-addизнутри SSH, security unlock-keychainсначала должен быть вызван. Кроме того, мне не нужно было создавать каталоги для -fпараметра. К сожалению, мне все еще приходилось вызывать security unlocl-keychainсеансы SSH, чтобы получить доступ к связке ключей входа в систему, которая запрашивает пароль каждый раз ...
Охад Шнайдер,
2
Весь смысл в том, чтобы иметь ключевую фразу на ключе. Я сомневаюсь, что создание нового ключа SSH полезно для вопроса.
Серый,
7
Кроме того, в macOS Sierra и HighSierra (не знаю о предыдущих версиях), запуск ssh-add -Aзаставит агента загружать все ключи, парольные фразы которых хранятся в связке ключей ... Очень удобно
Для всех, где вышеперечисленное не сработало, похоже, моя проблема была в том, что я дублировал UseKeychain yes& AddKeysToAgent yesво всех профилях / сочетаниях клавиш ssh. Я обновил свой ~/.ssh/configфайл, чтобы объявить их только один раз, и теперь все они загружаются при входе в систему без запроса паролей при запуске, например:
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/foo
IdentityFile ~/.ssh/bar
Host foo
HostName foo.com
User fooUser
IdentityFile ~/.ssh/foo
Host bar
HostName bar.com
User barUser
IdentityFile ~/.ssh/bar
id_rsa
ключа есть пароль.ssh-add
, а просто бежатьssh
напрямую. Вы должны получить всплывающее окно с парольной фразой для ключа и с флажком, который позволит вам сохранить его в цепочке для ключей.Ответы:
В OSX собственный
ssh-add
клиент имеет специальный аргумент для сохранения ключевой фразы секретного ключа в цепочке ключей OSX, что означает, что ваш обычный логин разблокирует его для использования с ssh. В OSX Sierra и более поздних версиях вам также необходимо настроить SSH, чтобы всегда использовать цепочку для ключей (см. Шаг 2 ниже).В качестве альтернативы вы можете использовать ключ без ключевой фразы, но если вы предпочитаете безопасность, это, безусловно, приемлемо с этим рабочим процессом.
Шаг 1 - Храните ключ в связке ключей
Просто сделайте это один раз:
Введите ключевую фразу-пароль, и вас больше не попросят.
(Если вы используете версию OSX, предшествующую Sierra, то все готово, шаг 2 не требуется.)
Шаг 2 - Настройте SSH, чтобы всегда использовать цепочку для ключей
Похоже, что OSX Sierra убрала удобное поведение сохранения ключей между логинами, и обновление по ssh больше не использует цепочку для ключей по умолчанию. По этой причине вам будет предложено ввести ключевую фразу для ключа после обновления и снова после каждого перезапуска.
Решение довольно простое и описано в этом комментарии к ветке github . Вот как вы это настроили:
Убедитесь, что вы выполнили шаг 1 выше, чтобы сохранить ключ в цепочке для ключей.
Если вы еще этого не сделали, создайте
~/.ssh/config
файл. Другими словами, в.ssh
каталоге в вашем домашнем каталоге создайте файл с именемconfig
.В этом
.ssh/config
файле добавьте следующие строки:Измените
~/.ssh/id_rsa
фактическое имя файла вашего личного ключа. Если у вас есть другие закрытые ключи в вашем~.ssh
каталоге, также добавьтеIdentityFile
строку для каждого из них. Например, у меня есть одна дополнительная строкаIdentityFile ~/.ssh/id_ed25519
для второго секретного ключа.Это
UseKeychain yes
ключевая часть, которая говорит SSH искать в вашей цепочке ключей OSX ключевую фразу.Это оно! В следующий раз, когда вы загрузите любое ssh-соединение, он попробует указанные вами закрытые ключи и будет искать их парольную фразу в цепочке ключей OSX. Не требуется ввод пароля.
источник
ssh-add -K ...
добавленные ключи к агенту ssh без запроса пароля, но только для текущего сеанса. После перезагрузки мне пришлось переиздать команду.ssh-add -A
вручную, чтобы загрузить сохраненную цепочку ключей. Некоторые возможные решения упомянуты выше..ssh/config
файла выглядит многообещающе! См github.com/lionheart/openradar-mirror/issues/...A
флаг в дополнение к флагу,K
чтобы добавить мои ключи в цепочку для ключей и зарегистрировать в нем кодовую фразу (ssh-add -AK ~/.ssh/[your-private-key]
). Спасибо!У меня была похожая проблема: меня КАЖДЫЙ РАЗ спрашивали о моей парольной фразе-ключе.
Согласно предложению пользователя "trisweb" выше, я включил эти параметры в ~ / .ssh / config:
НО это все еще подсказывало каждый раз, когда я хотел использовать ssh.
В конце концов я включил "ssh -v" и нашел следующую строку отладки:
Затем я открыл свою цепочку для ключей в «Keychain Access.app», нашел ключ с именем «SSH: /Users/username/.ssh/id_rsa» и открыл его.
Я нажал «Показать пароль», чтобы раскрыть пароль, и действительно обнаружил, что парольная фраза в связке ключей была старой парольной фразой.
Я обновил ключевую фразу в Keychain Access, и теперь работает без пароля.
Я мог бы также обновить фразу-пароль с помощью этой фразы:
источник
Каждый раз вам предлагается ввести пароль, потому что ваша цепочка для ключей входа в систему блокируется после неактивности и / или сна или, в вашем случае, перезагрузки. Есть два способа решить это для вас.
Измените настройки вашей цепочки для ключей входа в систему. Предполагая, что ваш ключ ssh хранится в цепочке для ключей входа в систему.
Создайте другой ключ SSH без использования ключевой фразы.
ssh-keygen -t rsa -b 4096 -C <comment> -f <.ssh/id_rsa>
ssh-add -K <path to ssh key>
Вам больше не нужно запрашивать пароль для связки ключей.
источник
ssh-add
изнутри SSH,security unlock-keychain
сначала должен быть вызван. Кроме того, мне не нужно было создавать каталоги для-f
параметра. К сожалению, мне все еще приходилось вызыватьsecurity unlocl-keychain
сеансы SSH, чтобы получить доступ к связке ключей входа в систему, которая запрашивает пароль каждый раз ...Кроме того, в macOS Sierra и HighSierra (не знаю о предыдущих версиях), запуск
ssh-add -A
заставит агента загружать все ключи, парольные фразы которых хранятся в связке ключей ... Очень удобноисточник
Для всех, где вышеперечисленное не сработало, похоже, моя проблема была в том, что я дублировал
UseKeychain yes
&AddKeysToAgent yes
во всех профилях / сочетаниях клавиш ssh. Я обновил свой~/.ssh/config
файл, чтобы объявить их только один раз, и теперь все они загружаются при входе в систему без запроса паролей при запуске, например:источник
Добавьте открытый ключ в:
Открытый ключ обычно находится на:
надеюсь, это поможет
источник
authorized_keys