Я помню, что раньше я мог это сделать, и у меня появлялось приглашение ввести пароль для разблокировки связки ключей на весь сеанс GNOME, чтобы в дальнейшем мне больше не приходилось вводить пароль связки ключей (не совсем уверен, есть ли это в Ubuntu или другом дистрибутиве).ssh [email protected]
ssh
Но в настоящее время при таком подходе у меня в терминале каждый раз запрашивается пароль моей связки ключей, что сводит на нет смысл использования ключей SSH.ssh [email protected]
Я проверил
$ 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 это нормально, я считаю, что другие переменные среды необходимы для приложений с графическим интерфейсом, чтобы использовать связку ключей.
решение1
Я нашел это на Arch Wiki: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$'`
[ -z "$SSH_AUTH_SOCK" ] || export SSH_AUTH_SOCK
Это должно заставить ssh запросить ваш пароль через графический интерфейс брелока.
решение2
Я часто использую ssh, в основном между моей рабочей станцией Ubuntu и другим веб-сервером Ubuntu со всеми сайтами, над которыми я работаю. Однажды я столкнулся с теми же симптомами, что и вы, и это оказалось связано с тем, как я запускал терминал. Я создал пользовательский ярлык для запуска gnome-terminal, потому что хотел передать определенную командную строку. Но я думаю, что у меня была та же проблема с запуском xterm.
Когда я запускал терминал с помощью встроенного сочетания клавиш (Alt-Ctrl-T) или из меню, он работал правильно и предлагал мне ввести пароль в графическом диалоговом окне, но когда я запускал его с помощью своего пользовательского сочетания клавиш, он всегда спрашивал пароль у самого терминала и не запоминал его.
решение3
У меня тоже была эта проблема. Возникла внезапно. Видимо, из-за сохранённого (возможно неправильного) пароля входа (SFTP) для того же домена.
Решение
Откройте Password and Keys
(связку ключей Gnome) и удалите пароль (был под Ubuntu)
Перезагрузил и все стало нормально.
export | grep SOCK
Теперь снова возвращено: SSH_AUTH_SOCK=/run/user/yourusername/keyring-xxxxxxx.*/ssh