Jestem w trakcie pozbywania się gnome-keyring
jako agent SSH.
Rzeczy, które zrobiłem
- Przeszukiwałem internet godzinami.
- Często zmieniałem i restartowałem.
- W końcu właśnie
rm
usunąłem wszystkie rzeczy związane z autostartem związane z SSH.
Ta ostatnia rzecz działała magicznie, ponieważ nie ma już gniazda dla agenta:
/run/user/[uid]/keyring/ssh
Problem
Pozostałą problemem jest to, że pomimo mojego uzyskania wspaniałego wspomniany wynik, coś w gnome-keyring
dalszym ciągu nalega na ustawienie SSH_AUTH_SOCK
do już nieistniejącego gniazda powyżej. To jak zombie, te rzeczy nigdy nie umierają.
Pytanie
Co to jest ustawienie tej zmiennej i gdzie to się dzieje?
Pułapki
- Ja nie pytając, jak mogę przywrócić tę zmienną na inną wartość.
- Ja nie pytając, jak mogę ustawić tę wartość dla całego systemu lub w pliku konfiguracyjnym powłoki.
- Ja nie pytając dla niektórych zaklęć skrypty startowe voodoo zamrozić, set, reset, wyłączony lub wymienić wszystko.
- Ja nie z prośbą o poradę, w jaki sposób odinstalować rzeczy: nadal muszę go dla moich haseł i wydaje się być najbardziej zintegrowany i polerowane menedżer haseł w Gnome.
Chcę, aby ta rzecz była wyłączona tak, jak powinna.
gnome
openssh
ssh-agent
gnome-keyring
JohnW
źródło
źródło
Odpowiedzi:
Niech zgadnę - używasz Waylanda. Wpadłem dziś na ten problem i pomyślałem, że podzielę się rozwiązaniem.
SSH_AUTH_SOCK
Z jakiegoś powodu Sesja Gnome ma zakodowane na stałe ustawienie w terenie. Zobacz następujące zatwierdzenie: https://github.com/GNOME/gnome-session/commit/a8896ccad65583885735a04205351f48a42f29aeObejście? Ustawić zmienną środowiskową, aby wyłączyć to zachowanie:
GSM_SKIP_SSH_AGENT_WORKAROUND=1
. Spowoduje to zwarcie kodu ustawienia środowiska.Dla osób, które to znajdą, i próbują również skonfigurować ssh-agent: W moim pliku systemd jednostki dla ssh-agent mam następujący wiersz:
Pełny plik wygląda następująco:
źródło
export GSM_SKIP_SSH_AGENT_WORKAROUND=1
do mojego ~ / .profile i ponowne uruchomienie naprawiło moją konfigurację, która wcześniej działała w wersji 17.04.(Środowisko OP nie jest znane, więc podane tutaj ścieżki to te, które można znaleźć na moim komputerze Ubuntu)
Gdzie ustawia breloczek do gnomów SSH_AUTH_SOCK?
Aby odpowiedzieć na główne pytanie w tytule, SSH_AUTH_SOCK jest ustawiany przez gnome-keyring
/usr/share/upstart/sessions/gnome-keyring-ssh.conf
za pomocą następującego polecenia:Cytując
initctl
instrukcję:Skąd bierze się SSH_AUTH_SOCK?
Powyższe
initctl
polecenie jest uwarunkowane tym, że zmienna środowiskowa SSH_AUTH_SOCK już istnieje. Czy to jest sytuacja z kurczakiem i jajami? Co to ustawia?SSH_AUTH_SOCK jest początkowo ustawiany przez oryginalnego agenta ssh, który jest uruchamiany na samym początku sesji X. Cytując instrukcję:
ALE to, co robi ssh-keyring gnome-keyring, to zastąpienie się istniejącym ssh-agentem. Dlatego zastępuje SSH_AUTH_SOCK swoim własnym gniazdem
/run/user/.../keyring-.../ssh
, aby aplikacje mogły z nim rozmawiać, a nie ssh-agent.Jak to wyłączyć?
Teraz odpowiedzmy na ostatnie zdanie: „Chcę wyłączyć tę rzecz”. OP chce wyłączyć nadpisywanie SSH_AUTH_SOCK przez komponent ssh w gnome-keyring. Chcą odzyskać „prawdziwą” zmienną SSH_AUTH_SOCK ustawioną początkowo przez ssh-agent.
Składnik ssh jest uruchamiany przez ten sam skrypt startowy, o którym mowa powyżej (
/usr/share/upstart/sessions/gnome-keyring-ssh.conf
), ale pod jednym warunkiem: ciąguX-GNOME-Autostart-enabled=false
nie można znaleźć w żadnym z tych plików:/etc/xdg/autostart/gnome-keyring-ssh.desktop
~/.config/autostart/gnome-keyring-ssh.desktop
Dlatego jeśli chcesz go wyłączyć, wystarczy dodać wiersz
X-GNOME-Autostart-enabled=false
do jednego z tych plików, najlepiej ten w katalogu HOME.źródło
/tmp/ssh-XXX/agent.PID
. Czy ssh-agent jest nadal na twojej liście procesów?https://wiki.archlinux.org/index.php/GNOME/Keyring#Disable_keyring_daemon_components
Lekko zredagowany, usuwający pozornie bezużyteczne użycie
printf
źródło
Począwszy od Gnome 3.18, gniazdo wydaje się być przechowywane w
~/.cache/keyring-(some random string)/ssh
Domyślamy się, że jest ustawiany przez gnome-keyring-daemon.
źródło