Как я могу решить эту проблему с ssh-agent?

Я использую 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 

  • Как использовать ssh-agent с несколькими (действительными) ключами и все же выбрать, какой из них использовать?
  • Случайно исказил кучу имен файлов в / tmp ... ssh-ключи, запрашивающие пароли
  • ssh-add на промежуточном узле ssh hop
  • Как использовать закрытый ключ для настройки без пароля ssh на новом компьютере
  • Как я могу предупредить ssh-agent при использовании определенного ключа?
  • ssh-agent: как сохранить ключ входа и добавить больше идентификаторов?
  • использование ssh-agent
  • константа "введите кодовую фразу для открытого ключа" ssh
  • 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 
    Linux и Unix - лучшая ОС в мире.