Je suis en train de me débarrasser d' gnome-keyring
un agent SSH.
Les choses que j'ai faites
- Recherche sur Internet pendant des heures.
- Changé des trucs et redémarré, souvent.
- Enfin, juste
rm
-ed toutes les choses de démarrage automatique liées à SSH.
Cette dernière chose a fonctionné comme par magie car il n'y a plus de socket pour l'agent là-bas:
/run/user/[uid]/keyring/ssh
Problème
Le problème reste que malgré mon obtention du merveilleux résultat mentionné ci - dessus, quelque chose dans gnome-keyring
insiste encore sur la mise SSH_AUTH_SOCK
à la désormais non existante prise ci - dessus. C'est comme des zombies, ces choses ne meurent jamais.
Question
Qu'est-ce qui définit cette variable et où est-elle effectuée?
Pièges
- Je ne demande pas comment je peux réinitialiser cette variable à une autre valeur.
- Je ne demande pas comment définir cette valeur à l'échelle du système ou dans un fichier de configuration shell.
- Je ne demande pas quelques incantations vaudou init-script pour geler, définir, réinitialiser, désinstaller ou remplacer quoi que ce soit.
- Je ne demande pas de conseils sur la façon de désinstaller la chose: j'en ai toujours besoin pour mes mots de passe et il semble être le gestionnaire de mots de passe le plus intégré et le plus raffiné de Gnome.
Je veux que ce truc soit désactivé comme il se doit.
Réponses:
Laissez-moi deviner - vous utilisez Wayland. J'ai rencontré ce problème aujourd'hui et j'ai pensé partager la solution.
Gnome-Session a un remplacement codé en dur pour
SSH_AUTH_SOCK
underwayland pour une raison quelconque. Voir le commit suivant: https://github.com/GNOME/gnome-session/commit/a8896ccad65583885735a04205351f48a42f29aeLa solution? Définir une variable d'environnement pour désactiver ce comportement:
GSM_SKIP_SSH_AGENT_WORKAROUND=1
. Cela court-circuite le code de réglage de l'environnement.Pour les personnes qui trouvent cela qui essaient également de configurer ssh-agent: Dans mon fichier d'unité systemd pour ssh-agent, j'ai la ligne suivante:
Le fichier complet ressemble à ceci:
la source
export GSM_SKIP_SSH_AGENT_WORKAROUND=1
à mon ~ / .profile et redémarrer a corrigé ma configuration qui fonctionnait auparavant sur v17.04.(L'environnement OP n'est pas connu, donc les chemins donnés ici sont ceux trouvés sur ma machine Ubuntu)
Où gnome-keyring place-t-il SSH_AUTH_SOCK?
Pour répondre à la question principale dans le titre, SSH_AUTH_SOCK est défini par gnome-keyring in
/usr/share/upstart/sessions/gnome-keyring-ssh.conf
avec la commande suivante:Citant le
initctl
manuel:D'où vient SSH_AUTH_SOCK en premier lieu?
La
initctl
commande ci-dessus est conditionnée au fait que la variable d'environnement SSH_AUTH_SOCK existe déjà. Alors, est-ce une situation de poulet et d'oeuf? Qu'est-ce qui le définit?SSH_AUTH_SOCK est initialement défini par l'agent ssh d'origine qui est démarré au tout début de la session X. Citant le manuel:
MAIS, ce que fait le composant ssh du gnome-keyring est de se substituer à l'agent ssh existant. Par conséquent, il écrase SSH_AUTH_SOCK avec son propre socket
/run/user/.../keyring-.../ssh
afin que les applications lui parlent, et non à ssh-agent.Comment le désactiver
Maintenant, répondons à la dernière phrase "Je veux que cette chose soit désactivée". Ce que l'OP veut, c'est désactiver l'écrasement de SSH_AUTH_SOCK par le composant ssh dans gnome-keyring. Ils veulent récupérer la "vraie" variable SSH_AUTH_SOCK initialement définie par ssh-agent.
Le composant ssh est démarré par le même script de démarrage mentionné ci-dessus (
/usr/share/upstart/sessions/gnome-keyring-ssh.conf
) mais à une condition: la chaîneX-GNOME-Autostart-enabled=false
ne doit être trouvée dans aucun de ces fichiers:/etc/xdg/autostart/gnome-keyring-ssh.desktop
~/.config/autostart/gnome-keyring-ssh.desktop
Par conséquent, si vous souhaitez le désactiver, il vous suffit d'ajouter une ligne
X-GNOME-Autostart-enabled=false
à l'un de ces fichiers, de préférence celui de votre répertoire HOME.la source
/tmp/ssh-XXX/agent.PID
. Ssh-agent est-il toujours dans votre liste de processus?https://wiki.archlinux.org/index.php/GNOME/Keyring#Disable_keyring_daemon_components
Légèrement édité, supprimant l'utilisation apparemment inutile de
printf
la source
Depuis Gnome 3.18, le socket semble être stocké dans
~/.cache/keyring-(some random string)/ssh
À une supposition, il est défini par gnome-keyring-daemon.
la source