У меня есть серверный процесс, который использует пароль SSH, защищенный парольной фразой. В настоящее время я вхожу через SSH, чтобы дать ключ каждый раз, когда процесс перезапускается. Я делаю:

eval `ssh-agent`
ssh-add mykey
# Enter passphrase 
# start my server process

Я хотел бы изменить этот процесс, чтобы я вводил парольную фразу SSH только один раз после перезагрузки сервера. Тогда ключ будет доступен всем процессам определенного пользователя UNIX на этом сервере, пока сервер не будет перезапущен снова.

Как я мог настроить такую настройку? Любые другие идеи, как сделать этот процесс более гладким?

Ubuntu Server 12.04.

1 ответ1

2

Итак, вы хотите, чтобы определенный пользователь UNIX на этом сервере вводил парольную фразу SSH только один раз и хотел, чтобы парольная фраза SSH действовала до тех пор, пока сервер не будет перезапущен снова, верно? Что-то еще?

Если не более того, то Keychain - ваш ответ.

Keychain - это менеджер ключей OpenSSH, обычно запускаемый из ~/.bash_profile. Когда цепочка для ключей запускается, он проверяет наличие запущенного ssh-агента, в противном случае он запускает один. Он сохраняет переменные среды ssh-agent в ~/.keychain/\$ {HOSTNAME} -sh, чтобы последующие входы в систему и неинтерактивные оболочки, такие как задания cron, могли получать файлы и устанавливать ssh-соединения без пароля. Кроме того, при запуске цепочки для ключей он проверяет, что файлы ключей, указанные в командной строке, известны ssh-agent, в противном случае он загружает их, запрашивая при необходимости пароль.

С помощью Keychain мне нужно всего лишь ввести пароль SSH один раз после перезагрузки моего ящика.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .