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

10

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

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

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

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

The agent has no identities.

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

EDIT: это то, что я сделал с 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
    
задан ssgao 12.12.2013 в 19:42
источник

2 ответа

6

Я установил keychain.

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 ###

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

    
ответ дан walpha 20.02.2014 в 05:58
1

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

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

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

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

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

ssh-keygen -t rsa

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

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

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

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

Ссылка: Ссылка     

ответ дан Omegamormegil 28.12.2013 в 21:49