1

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

ssh-agent/keychain, кажется, почти соответствует всем требованиям, за исключением того, что меня беспокоит парольная фраза, когда я вхожу в систему (когда я не уверен, что мне нужно использовать мои ключи ssh), а не когда я пытаюсь использовать ssh.

Есть ли какая-либо особенность в одном из этих инструментов или в каком-либо другом инструменте, который запомнит парольную фразу ssh, но, возможно, возьмите ее, когда я наберу ее для ssh, а не когда откроется сессия?

Я как-то заставил это работать над коробкой Fedora 16 некоторое время назад, но не могу вспомнить, что я сделал.

4 ответа4

3

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

alias ssh='[[ `ssh-add -l` == "The agent has no identities." ]] && ssh-add; ssh'

Я помещаю это в мой .alias и получаю его от .bashrc

0

Это поведение по умолчанию внутреннего SSH-агента GNOME Keyring.

Добавьте эти модули в соответствующие разделы вашей конфигурации PAM в /etc/pam.d/system-login (или, для GDM, gdm-password).

auth       optional   pam_gnome_keyring.so only_if=login,gdm-password

а также

session    optional   pam_gnome_keyring.so only_if=login,gdm-password auto_start

Этого должно быть достаточно, если вы используете GNOME (который запускает демон набора ключей из XDG Autostart). Если вы используете любую другую среду, добавьте это в ваш .xinitrc (для startx) или .xprofile (для gdm/lxdm/kdm):

if [ "$GNOME_KEYRING_CONTROL" ]; then
    eval $(gnome-keyring-daemon --start)
fi
0

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

0

Используйте gpg-agent . Он может обрабатывать SSH-ключи в дополнение к PGP-ключам, запрашивает парольную фразу только один раз, когда вам это нужно, и использует pinentry для ввода.

Добавьте это в ~/.xinitrc или ~/.xprofile :

eval $(gpg-agent --enable-ssh-support --daemon)

После того, как вы выйдете из системы / войдите в систему, вам нужно будет выполнить ssh-add чтобы попросить gpg-agent обработать ваш ключ SSH. Это необходимо только при первом использовании gpg-agent , а не после каждого входа в систему.

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