Założyłem nowe konto użytkownika dla znajomego na Kubuntu 12.04. Kiedy używa ssh
, dostaje ten błąd:
Nie można otworzyć połączenia z agentem uwierzytelniającym
Biegniemy ssh
w niektórych skryptach bash.
Po przeanalizowaniu różnych rzeczy, które mogą prowadzić do tego błędu, natknąłem się na to rozwiązanie:
$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/some_id_rsa
Potem może uruchomić ssh
polecenia (i skrypty bash) zgodnie z oczekiwaniami.
Przed uruchomieniem tych dwóch poleceń zmienne env nie są ustawiane w terminalu:
$ echo $SSH_AGENT_PID
$ echo $SSH_AUTH_SOCK
$
Po uruchomieniu poleceń zmienne env są ustawiane zgodnie z oczekiwaniami. Nie pozostają jednak ustawione (np. W innej powłoce lub po ponownym uruchomieniu).
Chcę wiedzieć, jak skonfigurować komputer, aby nie musiał uruchamiać tych dwóch poleceń, aby ustawić zmienne env. Nie muszę (nigdy) uruchamiać ich na moim komputerze. Jak dotąd nie widzę, co różni nasze maszyny.
Widzę te informacje na stronie podręcznika, ale nie mówi mi to, w jaki sposób Ubuntu normalnie konfiguruje agenta automatycznie lub co dzieje się na komputerze mojego przyjaciela, aby to nie działało.
Istnieją dwa główne sposoby skonfigurowania agenta: Pierwszy polega na tym, że agent uruchamia nową podkomendę, do której eksportowane są niektóre zmienne środowiskowe, np. Ssh-agent xterm &. Po drugie, agent drukuje potrzebne polecenia powłoki (można wygenerować składnię sh (1) lub csh (1)), które można wywołać w powłoce wywołującej, np. Eval
ssh-agent -s
dla powłok typu Bourne'a, takich jak sh (1) lub ksh (1) i evalssh-agent -c
dla csh (1) i instrumentów pochodnych.
Po zainstalowaniu acct
i ponownym uruchomieniu jest to wynik lastcomm
:
ssh-agent F newuser __ 0.12 secs Wed Aug 7 11:02
ssh-agent F newuser __ 0.00 secs Wed Aug 7 20:34
ssh-agent F newuser __ 0.02 secs Wed Aug 7 20:02
ssh-agent F newuser __ 0.01 secs Thu Aug 8 12:39
ssh-agent F newuser __ 0.02 secs Thu Aug 8 07:45
Ze strony podręcznika:
F - polecenie wykonywane po rozwidleniu, ale bez następnego exec
Nie jestem pewien, czy to jest znaczące.
X11/Xsession.options:use-ssh-agent
i X11/Xsession.d/90x11-common_ssh-agent:SSHAGENT=/usr/bin/ssh-agent
. Spróbuję acct
i lastcomm
dalej. Dzięki
lastcomm
pełnego sesji, a nie tylko ssh-agent
procesu. Chodzi o to, aby zobaczyć, w jakiej kolejności uruchamiane są różne programy.
ssh-agent
zwykle jest uruchamiany od/etc/X11/Xsession.d/90x11-common_ssh-agent
. Można to wyłączyć, usuwającuse-ssh-agent
z/etc/X11/Xsession
. Czy te pliki są poprawne? Czy agent został uruchomiony, a następnie zabity czy nigdy nie uruchomiony? (Zainstalujacct
i uruchomlastcomm
po zalogowaniu, aby zobaczyć, które programy zostały uruchomione.)