J'utilise Linux Mint, et je n'ai pas pu obtenir le gnome-keyring pour le déverrouiller automatiquement lors de la connexion, semble-t-il.
Un symptôme de mon problème est le suivant:
$ 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
Comment puis-je faire en sorte que git puisse pousser / tirer sans aucune entrée de phrase secrète de ma part?
Je me rends compte qu'il y a plusieurs choses ici avec gnome-trousseau de clés et ssh-agent, mais je n'ai pas réussi à le résoudre.
L'exécution ssh-add
pendant une session signifie que l'on ne me demande plus ma phrase secrète pour SSH / git.
Le problème est que je devrais exécuter ssh-add
pendant chaque session - je dois savoir comment faire pour déverrouiller le trousseau de clés de Gnome à la connexion.
$ export | grep GNOME
GNOME_KEYRING_CONTROL=/tmp/keyring-hjMM4V
GNOME_KEYRING_PID=1961
Cela s'est produit à nouveau au cours de la même session que le premier montage. Je l'ai fait git pull
et je l'ai eu 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
la source
export | grep GNOME
et publier les résultats. Avez-vous vu ce bug?gnome-keyring
déverrouiller automatiquement à la connexion.env | grep SSH
etps -fp $SSH_AGENT_PID
zsh
et entmux
cours d'exécution (juste pour le mentionner).Réponses:
Ce qui doit arriver, c'est:
Vous démarrez une session gnome, dont un démon gnome-keyring (qui agit également comme un agent ssh) démarre et l'environnement de tout ce qui a démarré pendant cette session gnome est mis à jour avec des informations sur la façon de contacter cet agent ssh. Le mot de passe que vous fournissez lors de la connexion graphique est utilisé pour déverrouiller le trousseau de clés par défaut.
Lorsque vous utilisez gnome-keyring comme ssh-agent, vous ne voulez pas utiliser un autre agent comme
ssh-agent
.Lorsque votre session X se termine, gnome-keyring fait de même. Mais votre session tmux reste. Ensuite, même si vous démarrez un autre gnome-keyring ou ssh-agent, l'environnement des processus déjà démarrés par
tmux
ne pourra pas lui parler à moins que vous ne mettiez à jour leur environnement avec le chemin du nouveau socket.Ce que vous pourriez faire, c'est:
Et faites
. ~/.gkr
dans tous les shells que vous souhaitez utiliser le nouveau gnome-keyringAttention cependant à l'AFFICHAGE auquel gnome-keyring-daemon va se connecter.
la source
.gkr
, devrais-je? Comment savoir à quel écrangnome-keyring-daemon
va se connecter?La première chose que j'essaierais,
apt-get install ssh-askpass-gnome
sinon, si vous n'avez pas ce paquet (ou un autre programme askpass) installé, alors gnome ne peut pas vous demander votre mot de passe lorsque vous devez déverrouiller votre clé.Vous devrez également
DISPLAY
définir correctement votre variable:Aussi, comment démarrez-vous votre terminal? Il peut y avoir un problème avec la façon dont vous démarrez la session de terminal et si elle hérite ou non
gnome-session
. Cela peut se produire lorsque vous utilisez un programme gnon-gnome pour définir vos raccourcis clavier.En supposant que vous utilisez,
gnome-terminal
vous pouvez vérifier en utilisantpstree
. Ici, vous pouvez voir l'héritage correct se produire:Alors que dans cette session, il n'hérite PAS de
gnome-session
:Vérifiez également que le
ssh-agent
démarrage est effectué pargnome-session
:la source
mate-terminal --maximize -e tmux
(que je présume être gnome-terminal). En outre,zsh
est ensuite chargé à l'intérieurtmux
.ssh-askpass-gnome
etait installé.$DISPLAY
a le résultat attendu. Pour l'héritage,tmux
est assis sousmate-terminal
sans mension degnome-session
. Sur une branche distincte, c'esttmux───zsh───xargs───pstree
. Pour répondre à votre dernière question, la sortie est:init───mdm───mdm───x-session-manag───ssh-agent
. Qu'est-ce que tu penses? Merci.mate-terminal
héritagegnome-session
est le problème. deux questions: 1) quel est le résultat depgrep -fl gnome-session
et; 2) Quelle action prenez-vous pour appeler réellement votre terminal? à partir d'un menu? à partir d'une liaison de raccourci clavier? ou ????Ctrl+Alt+t
. C'est un raccourci que j'ai défini en utilisant l'application Linux Mint enKeyboard Shortcuts
utilisant la commande que j'ai mentionnée précédemment. Cependant , lors du lancementTerminal
via le menu principal "Démarrer", SSH a agi différemment . L'interface graphique Gnome m'a demandé mon mot de passe pour mon trousseau de clés. L'option d'enregistrement de cette phrase secrète pour les sessions ultérieures était grisée, je n'ai pas pu la sélectionner. (La commande du lanceur de menu l'est égalementmate-terminal --maximize -e tmux
.) Cela nous rapproche-t-il? Merci, aculich.Ctrl+Alt+t
que vous avez défini dans les raccourcis clavier, je pense que vous rencontrez probablement un bogue dans mdm / MATE. Quelle version de Mint utilisez-vous?Je pense que le problème sur le stockage permanent de la clé SSH protégée par mot de passe.
Veuillez consulter les ressources suivantes:
la source
~/.ssh/config
mais cela ne l'a pas corrigé .Ajoutez ceci à votre .bash_profile
la source
$SSH_AUTH_SOCK
a une valeur de/tmp/ssh-QCndYkdq2025/agent.2025
. Suis-je en train de manquer quelque chose?$git pull
fait toujours apparaître l'invite de phrase secrète SSH.ssh-agent
correctement lors de la connexion dès la sortie de la boîte et ce sont généralement des choses comme vous qui le cassent. Si pour une raison quelconque votre système ne gère passsh-agent
, ne le faites pas à la main. Utilisez plutôt un trousseau qui est bien conçu pour gérer cela et les problèmes connexes. Il fonctionne également pour BSD (Mac) et d'autres systèmes non Linux.