Založil jsem nový uživatelský účet pro přítele na Kubuntu 12.04. Když používá ssh
dostane tuto chybu:
Nelze otevřít připojení k vašemu ověřovacímu agentovi
Spouštíme ssh
v některých bash skriptech.
Poté, co jsem se rozhlédl po široké škále věcí, které mohou vést k této chybě, narazil jsem na toto řešení:
$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/some_id_rsa
Poté může spustit ssh
příkazy (a bash skripty) podle očekávání.
Před spuštěním těchto dvou příkazů nejsou proměnné env nastaveny v terminálu:
$ echo $SSH_AGENT_PID
$ echo $SSH_AUTH_SOCK
$
Po spuštění příkazů se proměnné env nastaví podle očekávání. Nezůstanou však nastavené (např. v jiném prostředí nebo po restartu).
Chci vědět, jak nastavit jeho počítač, aby nemusel spouštět tyto dva příkazy k nastavení proměnných env. Nepotřebuji je spouštět na svém počítači (nikdy). Zatím nevidím, v čem se naše stroje liší.
Tuto informaci vidím na manuálové stránce, ale neříká mi, jak Ubuntu normálně automaticky nastavuje agenta nebo co se děje na počítači mého přítele, takže mu to nefunguje.
Existují dva hlavní způsoby, jak nastavit agenta:Prvním je, že
agent spustí nový dílčí příkaz, do kterého jsou
exportovány některé proměnné prostředí, např. ssh-agent xterm &. Druhým je, že agent vytiskne
potřebné příkazy shellu (lze vygenerovat syntaxi sh(1) nebo csh(1)),
které lze vyhodnotit ve volajícím shellu, např. evalssh-agent -s
pro
shelly typu Bourne, jako je sh(1) nebo ksh(1) a evalssh-agent -c
pro
csh(1) a deriváty.
Po instalaci acct
a restartování, toto je výstup 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
Z manuálové stránky:
F — příkaz provedený po rozvětvení, ale bez následujícího exec
Nejsem si jistý, zda je to významné.
Přijatá odpověď:
Zmínili jste se, že váš uživatel je ssh
přihlášení, nepřihlášení místně. Tedy use-ssh-agent
v /etc/X11/Xsession.options
je červený sleď:nebude spuštěn na relacích SSH, pouze když se lokálně přihlásíte do grafického uživatelského rozhraní X11 (nebo pomocí nějaké virtuální relace X11, jako je VNC nebo RDP).
Místo toho byste měli zkontrolovat, zda libpam-ssh
je nainstalován na obou systémech. Lze jej nakonfigurovat tak, aby ověřoval uživatele pomocí přístupových frází soukromého klíče SSH, ale to je volitelné a budete muset klíč konkrétně umístit do ~/.ssh/login-keys.d/
pro tuto funkci.
Jeho další funkcí je však automatické spuštění agenta SSH při jakékoli přihlašovací relaci a automatické přidání soukromých klíčů SSH k agentovi, pokud je jejich přístupová fráze stejná jako přihlašovací heslo uživatele. Myslím, že to může být příčinou rozdílného chování mezi vašimi systémy.