Я помню, что раньше у меня была возможность сделать ssh blah@foo.com
, и меня попросили ввести пароль для разблокировки набора ключей для всего сеанса GNOME, поэтому последующему ssh
больше не нужно будет вводить пароль для набора ключей. (не совсем уверен, что это в Ubuntu или другом дистрибутиве).
Но в настоящее время выполнение ssh blah@foo.com
каждый раз спрашивает в терминале мой пароль для ключей; который побеждает цель использования ключей SSH.
Я проверил
$ cat /etc/pam.d/lightdm | grep keyring
auth optional pam_gnome_keyring.so
session optional pam_gnome_keyring.so auto_start
, который выглядит нормально, и
$ pgrep keyring
1784 gnome-keyring-d
, чтобы демон ключей был жив.
Я наконец-то обнаружил, что переменная SSH_AUTH_SOCK (и GNOME_KEYRING_CONTROL, а также GPG_AGENT_INFO и GNOME_KEYRING_PID) установлены неправильно. Как правильно установить эту переменную и почему они не устанавливаются в моей среде (то есть не должны ли они быть установлены при установке по умолчанию)?
Я думаю, я могу установить ее в .bashrc, но тогда переменные будут определены только в сеансе bash, в то время как для ssh это нормально, я считаю, что другие переменные окружения необходимы для того, чтобы приложения GUI использовали связку ключей.
Я нашел это в вики Arch: https://wiki.archlinux.org/index.php/GNOME_Keyring
По сути, вы запускаете gnome-keyring-daemon -s
, чтобы получить определенную связку ключей значение, затем к вашему .bashrc, добавьте:
SSH_AUTH_SOCK=`netstat -xl | grep -o '/run/user/yourusername/keyring-xxxxxxx.*/ssh Это должно заставить ssh запросить у вас пароль через GUI набора ключей.
`
[ -z "$SSH_AUTH_SOCK" ] || export SSH_AUTH_SOCK
Это должно заставить ssh запросить у вас пароль через GUI набора ключей.
Я часто использую ssh, в основном между моей рабочей станцией Ubuntu и другим веб-сервером Ubuntu со всеми веб-сайтами, на которых я работаю. Однажды я столкнулся с теми же симптомами, что и у вас, и оказалось, что это то, что я использовал в терминале. Я создал собственный ярлык для запуска gnome-terminal, потому что хотел передать определенную командную строку. Но я думаю, что у меня была такая же проблема при запуске xterm.
Когда я запускал терминал из встроенного ярлыка (Alt-Ctrl-T) или из меню, он работал правильно и подсказывал мне диалоговое окно с паролем для ввода пароля, но когда я запускал его из своего пользовательского ярлыка , он всегда спрашивал с самого терминала и не помнил.
У меня тоже была эта проблема. Появился внезапно По-видимому, вызвано сохраненным (возможно неправильным) (SFTP) паролем для входа в тот же домен.
Решение
Откройте Password and Keys
(Gnome keyring) и удалите пароль (был под Ubuntu one)
[ 117] Перезагрузка и все было хорошо.
export | grep SOCK
Теперь снова вернулся: SSH_AUTH_SOCK = / run / user / yourusername / keyring-xxxxxxx. * / Ssh