Недавно я обновил свою MacOS Sierra, и теперь команда ssh продолжает запрашивать идентификационную фразу каждый раз, когда я пытаюсь войти на мой удаленный сервер Linux / Unix:
Enter passphrase for key ‘/Users/vivek/.ssh/id_ed25519’: (Введите идентификационную фразу для ключа ‘/Users/vivek/.ssh/id_ed25519’:)
Как исправить обновление MacOS Sierra, которое продолжает разрывать ключи ssh в терминале?
Мой MacOS раньше всегда запоминал кодовую фразу ssh, но теперь он спрашивает ее каждый раз, когда я пытаюсь войти на локальный сервер FreeBSD nas или удаленный сервер Ubuntu при вводе:
$ ssh user@server $ ssh vivek@server1.cyberciti.biz
Примеры возможных выводов данных:
Теперь давайте рассмотрим различные способы, как можно решить проблему со сбросом SSH ключа после обновления MacOS.
Метод #1: Решить вопрос, когда macOS продолжает запрашивать кодовую фразу ssh после обновления до Sierra или после перезагрузки
Вам необходимо использовать опцию UseKeychain в вашем файле ~/.ssh/config. С главной страницы ssh_config:
В macOS указывается, следует ли системе искать фразу в цепочке ключей пользователя при попытке использовать конкретный ключ. Когда кодовая фраза предоставляется пользователем, эта опция также указывает, должна ли кодовая фраза храниться в цепочке ключей, как только она будет проверена как правильная. Значение должен быть «да» или «нет». По умолчанию — нет.
Это самый простой способ решить данную проблему для всех пользователей Отредактируйте ваш ~/.ssh/config файл:
$ vi ~/.ssh/config
Добавьте следующую строчку в Host * раздел:
UseKeychain yes
Вот пример моего файла:
Host * ServerAliveInterval 10 ControlPath ~/.ssh/controlmasters/%r@%h:%p ControlMaster auto ControlPersist yes ProtocolKeepAlives 120 UseRoaming no UseKeychain yes
Сохраните и закройте файл. Это должно заставить ssh запомнить ключ пользователя в цепочки ключей:
$ ssh user@server $ ssh vivek@server1.cyberciti.biz
Метод #2: Используйте ssh-agent/ssh-add для добавления всех известных ключей к агенту SSH.
Синтаксис, для использования SSH ключей на Linux / Unix / MacOS System,будет выглядеть следующим образом:
## Create the key pair using ssh-keygen command ## ssh-keygen -t rsa ## Install the public key using ssh-copy-id command ## ssh-copy-id -i $HOME/.ssh/id_rsa.pub vivek@server1.cyberciti.biz ## Update your shell profile file echo 'ssh-add -A 2>/dev/null' >> ~/.bash_profile ## Try it now eval $(ssh-agent) ssh-add
Метод #3: Используйте keychain
OpenSSH предлагает аутентификацию RSA и DSA для удаленных систем без предоставления пароля. Keychain — специальный скрипт bash, призванный сделать аутентификацию на основе ключей невероятно удобной и гибкой. Он предлагает различные преимущества безопасности по сравнению с ключами без кодовой фразы.
Установите keychain следующим образом:
$ brew install keychain
Пример возможных выводов данных:
==> Using the sandbox ==> Downloading ######################################################################## 100.0% ? /usr/local/Cellar/keychain/2.8.3: 7 files, 106.2K, built in 3 seconds
Добавьте следующий код в свой профиль ssh (при условии, что вы используете файл id_rsa):
echo '/usr/local/bin/keychain $HOME/.ssh/id_rsa' >> ~/.bash_profile echo 'source $HOME/.keychain/$HOSTNAME-sh' ~/.bash_profile
Для получения большей информации ознакомьтесь с «keychain: Set Up Secure Passwordless SSH Access For Backup Scripts (keychain: установка безопасного безпарольного SSH доступа для резервных сценариев)»
Перевод: Анна Давыдова
Источник: cyberciti.biz
Это интересно:
Подскажите как вылечить macbook от такой болячки: после перезагрузки слетает ssh ключ и приходится руками заново добавлять: ssh-add -K ~/.ssh……