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 -sdla powłok typu Bourne'a, takich jak sh (1) lub ksh (1) i evalssh-agent -cdla csh (1) i instrumentów pochodnych.
Po zainstalowaniu accti 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-agenti X11/Xsession.d/90x11-common_ssh-agent:SSHAGENT=/usr/bin/ssh-agent. Spróbuję accti lastcommdalej. Dzięki
lastcommpełnego sesji, a nie tylko ssh-agentprocesu. Chodzi o to, aby zobaczyć, w jakiej kolejności uruchamiane są różne programy.
ssh-agentzwykle jest uruchamiany od/etc/X11/Xsession.d/90x11-common_ssh-agent. Można to wyłączyć, usuwającuse-ssh-agentz/etc/X11/Xsession. Czy te pliki są poprawne? Czy agent został uruchomiony, a następnie zabity czy nigdy nie uruchomiony? (Zainstalujaccti uruchomlastcommpo zalogowaniu, aby zobaczyć, które programy zostały uruchomione.)