3

При каждом перезапуске я должен запускать следующие команды:

ssh-agent /bin/bash
ssh-add ~/.ssh/key_rsa

Первый вопрос: зачем нужен /bin/bash и для чего он используется?

Во-вторых, это нормально, я запускаю эти команды каждый раз при перезапуске, или я должен поместить это в .bashrc или куда-то, чтобы мне не нужно было каждый раз ssh-add .

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

Редактировать:

Например, когда мне нужно перейти на github, мне нужно выполнить ssh-add ~/.ssh/github_rsa , но это не сработает, если я сначала не сделаю ssh-agent /bin/bash .

Это может быть связано с screen потому что простой ssh-agent не работает, а ssh-agent уже запущен, но мне нужно сделать ssh-agent /bin/bash .

2 ответа2

2

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

Часть /bin/bash самом деле не нужна. Обычно, когда вы запускаете ssh-agent он выводит некоторые переменные окружения в stdout, которые должны быть eval чтобы ssh знал, где находится сокет ssh-agent . Если вместо этого вы дадите команду ssh-agent при запуске, она запустит эту команду с установленными переменными среды.

Это означает, что экземпляр bash, который вы используете после выполнения команды, является подоболочкой того, что вы использовали ранее. Проблема с добавлением этого в ваш .bashrc заключается в том, что новая оболочка ssh-agent запускает ssh-agent снова, вызывая рекурсивный цикл, который вам не нужен. Вместо этого вы можете просто запустить ssh-agent в вашем .bash_profile и проверить вывод вместо запуска subshell, а затем использовать ssh-add вручную каждый раз, когда вы входите в систему.

Другой вариант - использовать эмуляцию SSH агента GNOME Keyring вместо использования ssh-agent . В отличие от ssh-agent , который не сохраняет вашу парольную фразу, GNOME Keyring сохранит парольную фразу для ключа в связке ключей, поэтому вам не нужно добавлять ключи вручную.

2

Я рекомендую вам использовать связку ключей http://www.funtoo.org/Keychain

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

Во-первых, вы должны установить его в соответствии с вашим дистрибутивом для Debian / Ubuntu.

apt-get install keychain

Затем добавьте следующее в файл ~/.bashrc:

eval `keychain --eval id_rsa`

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