Я использую Linux Mint и, похоже, не смог автоматически разблокировать gnome-keyring при входе в систему.
Симптом моей проблемы заключается в следующем:
$ ssh-add
Identity added: /home/me/.ssh/id_rsa (/home/me/.ssh/id_rsa)
$ git pull
WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-Nmf3J3/pkcs11: No such file or directory
Как я могу сделать так, чтобы git мог толкать / тянуть без ввода пароля?
Я понимаю, что здесь есть несколько вещей с gnome-keyring и ssh-agent, но я не смог их зафиксировать.
Запуск ssh-add
во время сеанса означает, что меня больше не спрашивают мою фразу-пароль для SSH / git.
Проблема в том, что мне нужно было бы запускать ssh-add
во время каждого сеанса - я, должно быть, упускаю, как разблокировать связку ключей Gnome при входе в систему.
$ export | grep GNOME
GNOME_KEYRING_CONTROL=/tmp/keyring-hjMM4V
GNOME_KEYRING_PID=1961
Это случилось снова во время той же сессии, что и первое редактирование. Я сделал git pull
и получил WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-hjMM4V/pkcs11: No such file or directory
.
$ env | grep SSH
SSH_AGENT_PID=2116
SSH_AUTH_SOCK=/tmp/ssh-OACxJMBY2038/agent.2038
$ ps -fp $SSH_AGENT_PID
UID PID PPID C STIME TTY TIME CMD
eoin 2116 2038 0 09:47 ? 00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager
источник
export | grep GNOME
и опубликовать результаты. Вы видели эту ошибку?gnome-keyring
автоматическую разблокировку при входе в систему.env | grep SSH
иps -fp $SSH_AGENT_PID
zsh
иtmux
работает (просто упомянуть об этом).Ответы:
Что должно произойти, это:
Вы запускаете сеанс gnome, часть которого запускается демон gnome-keyring (который также действует как агент ssh), и среда всего, что было запущено во время этого сеанса gnome, обновляется информацией о том, как связаться с этим агентом ssh. Пароль, который вы выдаете при графическом входе в систему, используется для разблокировки набора ключей по умолчанию.
Когда вы используете gnome-keyring в качестве ssh-agent, вы не хотите использовать другой агент вроде
ssh-agent
.Когда ваша X-сессия завершается, gnome-keyring также прерывается. Но ваша сессия tmux остается. Тогда, даже если вы запустите другой gnome-keyring или ssh-agent, среда уже запущенных процессов
tmux
не сможет с ним общаться, если вы не обновите их среду путем указания нового сокета.Что вы могли бы сделать, это:
И
. ~/.gkr
во всех оболочках вы хотите использовать новый gnome-keyringОстерегайтесь, однако, с каким DISPLAY будет соединяться gnome-keyring-daemon.
источник
.gkr
, я должен? Как я могу остерегаться того, к какому дисплеюgnome-keyring-daemon
он будет подключаться?Первое, что я бы попробовал, это
apt-get install ssh-askpass-gnome
иначе, если у вас не установлен этот пакет (или какая-либо альтернативная программа askpass), тогда gnome не сможет запросить у вас пароль, когда вам нужно будет разблокировать ключ.Вам также необходимо
DISPLAY
правильно установить переменную:Кроме того, как вы начинаете свой терминал? Может быть проблема с тем, как вы запускаете терминальную сессию, и наследует ли он от него
gnome-session
. Это может произойти, когда вы используете какую-то программу gnon-gnome для установки привязок клавиш.Предполагая, что вы используете,
gnome-terminal
вы можете проверить с помощьюpstree
. Здесь вы можете увидеть правильное наследование:Принимая во внимание, что в этом сеансе это НЕ наследуется от
gnome-session
:Также проверьте,
ssh-agent
что запускаетсяgnome-session
:источник
mate-terminal --maximize -e tmux
(я полагаю, это gnome-терминал). Кроме того,zsh
затем загружается вtmux
.ssh-askpass-gnome
был установлен.$DISPLAY
ожидаемый результат. Для наследства,tmux
сидитmate-terminal
без особого надзораgnome-session
. На отдельной ветке этоtmux───zsh───xargs───pstree
. Чтобы ответить на ваш последний вопрос, выход:init───mdm───mdm───x-session-manag───ssh-agent
. Как вы думаете? Благодарю.mate-terminal
наследования от васgnome-session
- проблема. два вопроса: 1) что является результатомpgrep -fl gnome-session
и; 2) какие действия вы предпринимаете, чтобы фактически вызвать свой терминал? из меню? с привязки горячей клавиши? или ????Ctrl+Alt+t
. Это ярлык, который я установил с помощью приложения Linux MintKeyboard Shortcuts
с помощью команды, которую я упоминал ранее. Однако при запускеTerminal
через главное меню «Пуск» SSH действовал иначе . Графический интерфейс Gnome запросил у меня пароль к моей связке ключей. Возможность сохранить эту фразу-пароль для последующих сеансов была недоступна, я не мог ее выбрать. (Команда запуска меню такжеmate-terminal --maximize -e tmux
.) Это приближает нас? Спасибо, aculich.Ctrl+Alt+t
которое вы установили в сочетаниях клавиш, тогда, я думаю, вы, вероятно, испытываете ошибку в mdm / MATE. Какую версию Mint вы используете?Я думаю, что проблема постоянного хранения защищенного паролем ключа SSH.
Пожалуйста, посмотрите на следующие ресурсы:
источник
~/.ssh/config
но это не помогло .Добавьте это к вашему .bash_profile
источник
$SSH_AUTH_SOCK
имеет значение/tmp/ssh-QCndYkdq2025/agent.2025
. Я что-то пропустил?$git pull
все еще вызывает приглашение SSH passphrase.ssh-agent
должным образом при входе в систему сразу после установки, и обычно такие вещи, как эта, сводят на нет. Если по какой-то причине ваша система не справляетсяssh-agent
, не делайте этого вручную. Вместо этого используйте связку ключей, которая хорошо разработана для решения этой и связанных с ней проблем. Это также работает для BSD (Mac) и других не-Linux систем.