Как я могу решить эту проблему с ssh-agent?
Я использую Linux Mint и не смог получить gnome-keyring, чтобы автоматически разблокировать при входе в систему.
Симптом моей проблемы заключается в следующем:
- ssh-add жалуется: не удалось открыть соединение с вашим агентом аутентификации
- можно ли запускать `ssh-add <key>` только тогда, когда я ssh в поле? (от Cygwin)
- Ssh продолжает просить кодовую фразу несколько раз
- Почему git сохраняет мою SSH-идентификацию в gnome, но не KDE?
- Запускать ssh-agent 24/7 с помощью брелка?
$ 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
4 Solutions collect form web for “Как я могу решить эту проблему с ssh-agent?”
Что должно произойти:
Вы запускаете сеанс gnome, частью которого запускается демон gnome-keyring (который также действует как агент ssh), и среда чего-либо, запущенного во время этого сеанса gnome, обновляется информацией о том, как связаться с этим агентом ssh. Пароль, который вы выдаете при графическом входе, используется для разблокировки ключевого слова по умолчанию.
Когда вы используете gnome-keyring как ssh-agent, вы не хотите использовать другой агент, такой как ssh-agent
.
Когда ваш X-сеанс завершается, также делает gnome-keyring. Но сеанс tmux остается. Затем, даже если вы запустите другой gnome-keyring или ssh-agent, среда процессов, уже запущенных tmux
, не сможет с ней поговорить, если вы не обновите их среду с помощью пути нового сокета.
Что вы можете сделать, так это:
gnome-keyring-daemon -r > ~/.gkr
И делай . ~/.gkr
. ~/.gkr
во всех оболочках, которые вы хотите использовать новый гном-ключ
Остерегайтесь, какой из них будет отображаться DISPLAY, с которым подключается gnome-keyring-daemon.
Первое, что я попробую, это apt-get install ssh-askpass-gnome
иначе если у вас не будет установлен этот пакет (или какая-то альтернативная программа askpass), тогда gnome не сможет запросить ваш пароль, когда вам нужно разблокировать твой ключ.
Вам также необходимо будет правильно настроить переменную DISPLAY
:
$ echo $DISPLAY :0.0
Кроме того, как вы начинаете свой терминал? Может возникнуть проблема с тем, как вы начинаете сеанс терминала и не наследуете ли он от gnome-session
. Это может произойти, если вы используете какую-либо программу gnon-gnome для установки привязок клавиш.
Предполагая, что вы используете gnome-terminal
вы можете проверить с помощью pstree
. Здесь вы можете увидеть правильное наследование:
$ pgrep gnome-terminal | xargs -l1 pstree -s init(1)───lightdm(1643)───lightdm(26912)───gnome-session(27049)───xmonad-x86_64-l(27139)───gnome-terminal(26036)─┬─bash(26041) ├─gnome-pty-helpe(+ ├─{gnome-terminal}+ ├─{gnome-terminal}+ └─{gnome-terminal}+
Если в этом сеансе он не наследуется от gnome-session
:
$ pgrep gnome-terminal | xargs -l1 pstree -s init(1)───sh(25919)───gnome-terminal(25920)─┬─bash(25927) ├─gnome-pty-helpe(25926) ├─{gnome-terminal}(25921) ├─{gnome-terminal}(25924) └─{gnome-terminal}(25928)
Кроме того, проверьте, что ssh-agent
запускается с помощью gnome-session
:
$ pgrep ssh-agent | xargs -l1 pstree -s init(1)───lightdm(1643)───lightdm(26912)───gnome-session(27049)───ssh-agent(27091)
Я думаю, проблема в постоянном хранении защищенного паролем SSH-ключа.
Пожалуйста, ознакомьтесь со следующими ресурсами:
Добавьте это в свой .bash_profile
if [ -n "$SSH_AUTH_SOCK" \ -a "${SSH_AUTH_SOCK::13}" = "/tmp/keyring-" \ -a ! -L "$SSH_AUTH_SOCK" ] then OLD_AUTH_SOCK="$SSH_AUTH_SOCK" eval `ssh-agent` mv "$OLD_AUTH_SOCK" "$OLD_AUTH_SOCK"~ ln -sfn "$SSH_AUTH_SOCK" "$OLD_AUTH_SOCK" SSH_AUTH_SOCK="$OLD_AUTH_SOCK" fi