GNU/Linux >> Znalost Linux >  >> Linux

Ssh-agent se nenastavuje (ssh_auth_sock, Ssh_agent_pid Env Vars Not Set)?

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ř. eval ssh-agent -s pro
shelly typu Bourne, jako je sh(1) nebo ksh(1) a eval ssh-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).

Související:Jak spustit konkrétní program jako root bez výzvy k zadání hesla?

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.


Linux
  1. Jak nastavit SSH tunelování

  2. Jak nastavit klíče SSH

  3. Env či ne Env?

  1. Vim neběží uvnitř Tmux?

  2. Nastavení +a Nezruší nastavení příznaku -a?

  3. Začínáme s SSH v Linuxu

  1. Jak na to:Začínáme s Ansible

  2. Jak nastavit klíče SSH na Ubuntu 18.04

  3. Jak nastavit klíče SSH na Debianu