Как не вводить ssh-add каждый раз

Я прочитал и следил за некоторыми онлайн-документами о том, как настроить ssh-agent , чтобы мне не приходилось вводить пароль каждый раз, когда я ssh подключался к удаленной машине.

Однако, с помощью ssh-agent , мне все еще нужно делать ssh-add каждый раз, когда я перезагружаю оболочку. Затем ssh-add просит меня ввести ключевую фразу, чтобы разблокировать закрытый ключ.

Enter passphrase for key '/home/xx/.ssh/id_rsa':

Вместо того, чтобы вводить пароль для удаленного компьютера, меня просят ввести пароль для закрытого ключа. Это как выйти из чистилища и потом оказаться в аду. Похоже, что id_rsa только временно добавляется в ssh-agent в сеансе , потому что каждый раз, когда я вхожу в систему и печатаю ssh-add -l. Я получаю:

The agent has no identities.

Могу ли я спросить, как постоянно хранить ключ (id_rsa) в ssh-agent? Спасибо

РЕДАКТИРОВАТЬ: это то, что я сделал с ssh-agent. Я добавил следующий блок в ~/.bash_profile

SSHAGENT=/usr/bin/ssh-agent                                                                                        
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "SSHAGENT" ]; then
  eval `$SSHAGENT $SSHAGENTARGS`
  trap "kill $SSH_AGENT_PID" 0
fi
11
задан 13 December 2013 в 01:26

3 ответа

Я установил брелок.

sudo apt-get install keychain

Если вы используете bash, вам нужно добавить несколько команд в ваш .bash_profile. Если у вас нет .bash_profile, создайте его в своей домашней папке. Добавьте эти строки:

### START-Keychain ###
# Let  re-use ssh-agent and/or gpg-agent between logins
/usr/bin/keychain $HOME/.ssh/id_dsa
source $HOME/.keychain/$HOSTNAME-sh
### End-Keychain ###

В начале рабочего дня я войду в систему. Когда я открываю терминал, мне будет предложено ввести пароль. Для всех других новых терминалов и соединений меня не будут спрашивать о моей парольной фразе.

0
ответ дан 13 December 2013 в 01:26

То, что вы ищете, менее безопасно, но это может быть выполнено с использованием аутентификации с открытым ключом без использования ssh-agent. Более безопасный вариант - использовать аутентификацию с открытым ключом с парольной фразой при отключении аутентификации по паролю на сервере ssh, но это не то, что вы просили. Смотрите ссылку внизу этого ответа для получения инструкций, если вы решите сделать это вместо этого.

Чтобы использовать ssh без запроса какой-либо парольной фразы, вам нужно сгенерировать пару ключей, оставив поле пароля незаполненным.

Чтобы убедиться, что вы уже сгенерировали пару ключей, проверьте файлы id_rsa и id_rsa.pub в каталоге ~ / .ssh. Если они уже есть, вы можете удалить их или переместить, чтобы создать новую пару ключей.

Обратите внимание: если вы удалите их, вы потеряете доступ к любым ssh-серверам, которые вы используете, а затем к старым ключам для аутентификации, если на сервере отключена аутентификация по паролю.

Чтобы создать новую пару ключей, выполните следующую команду:

ssh-keygen -t rsa

Примите расположение ключей по умолчанию и оставьте парольную фразу пустой.

Чтобы передать свой открытый ключ серверу ssh, к которому вы хотите подключиться, используйте следующую команду:

ssh-copy-id -i ~/.ssh/id_rsa.pub username@remotehost

После выполнения этих шагов вы сможете войти на удаленный сервер без пароль от компьютера, который вы используете.

Ссылка: http://tombuntu.com/index.php/2008/02/20/public-key-authentication-for-ssh-made-easy/

0
ответ дан 13 December 2013 в 01:26

Некоторое время назад у меня внезапно начали спрашивать пароль для разблокировки моего ключа ssh при выполнении git push. Оказалось, что для того, чтобы перестать запрашивать парольную фразу, достаточно было добавить ключевой агент SSH (GNOME Keyring: SSH Agent) в автозагрузку приложений (в моем случае - просто чтобы поставить галочку):

enter image description here

0
ответ дан 13 December 2013 в 01:26

Другие вопросы по тегам:

Похожие вопросы: