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).