17.7. Вход без пароля с использованием keychain
Проблема
Программа ssh-agent
неплоха, но пользователю приходится вводить пароль при каждом открытии нового командного процессора. При выходе вся введённая информация теряется. Кроме того, ssh-agent
не поддерживает беспарольную пересылку данных SSH при работе с scp
.
Решение
Используйте программу keychain
, которая сохраняет пароли SSH на общесистемном уровне вплоть до перезагрузки. Keychain также работает совместно с scp
, позволяя пользователю отправлять файлы и запускать сеансы SSH без повторного ввода пароля.
Загрузите и установите keychain из обычных источников в формате RPM, .deb или в виде исходного кода. После установки отредактируйте локальный файл ~/.bash_profile
и добавьте следующие строки:
keychain id_dsa
. ~/.keychain/$HOSTNAME-sh
Замените id_dsa
на фактическое имя вашего закрытого ключа, например, id_rsa
или my_own_groovy_key
. Обратите внимание на точку в начале второй строки — она указывает Bash на необходимость выполнить команды из указанного файла.
Теперь, при следующем входе на локальную рабочую станцию, keychain запросит пароль к ключу, после чего обеспечит аутентификацию до перезагрузки системы. Это избавляет от необходимости вводить пароль при каждом новом сеансе, что особенно полезно для серверных администраторов, работающих с SSH.
Комментарий
В конфигурации ~/.bash_profile
можно указать несколько ключей, если вы используете разные ключи для различных сервисов или серверов:
keychain id_dsa apache_key ftp_key
При входе в систему keychain запросит пароль для каждого из ключей. После ввода паролей keychain сохранит их, обеспечивая аутентификацию в течение всей работы системы. Если требуется периодически подключаться к разным серверам, keychain упрощает задачу за счёт хранения ключей для каждого сервера. Однако после перезагрузки системы необходимо будет ввести пароли заново.
Keychain также поддерживает работу с ssh-agent
, расширяя его функциональность. Это особенно удобно, когда ключи используются для различных сервисов (например, Apache, FTP и других). Использование keychain гарантирует, что закрытые ключи остаются недоступными для чтения и записи для всех, кроме владельца, что добавляет дополнительный уровень безопасности.
Помимо облегчения доступа, keychain предотвращает необходимость постоянно запускать ssh-agent
при каждом новом подключении. Это экономит время и упрощает процесс управления несколькими ключами.
См. также
ssh(1), ssh-add(1), ssh-agent(1), keychain(1).