Ssh-agent

ssh-agent
VývojářProjekt OpenBSD
Operační systémUnix, UN*X, Microsoft Windows, macOS
Vyvíjeno vC
Typ softwaruutilita
LicenceBSD, ISC, Public domain software
Webwww.openssh.com
Některá data mohou pocházet z datové položky.

Secure Shell (SSH) je protokol umožňující bezpečné přihlašování k počítačům přes síť bez použití hesla díky použití kryptografie s veřejným klíčem. Klientské programy pro SSH (např. ssh z OpenSSH) obvykle běží pouze po dobu trvání vzdálené relace a jsou nakonfigurovány tak, aby soukromý klíč uživatele načítaly z některého ze souborů v uživatelově domovském adresáři (např. ~/.ssh/id_rsa). Aby se zabránilo zneužití soukromého klíče (například útočníkem, který získal oprávnění číst libovolný soubor v lokálním systému souborů), je třeba soukromý klíč ukládat zašifrovaný, přičemž šifrovací klíč se počítá z heslové fráze, kterou si uživatel musí pamatovat. Aby nebylo nutné zadávat heslovou frázi opakovaně, ssh-agent načte klíče ze souborů, požádá uživatele o zadání heslové fráze, a po celou dobu přihlášení k počítači poskytuje klíče SSH klientům, se kterými komunikuje pomocí Unix domain socketu.

Problémy datové bezpečnosti

[editovat | editovat zdroj]

Pro komunikaci se ssh klienty vytvoří ssh-agent v adresáři /tmp nový podadresář a v něm soket, na kterém očekává spojení od ssh. Kdokoli je schopen se připojit na tento soket, má také přístup k ssh-agentu. Přístup k soketu je sice omezen pomocí unixových přístupových práv, ale k soketu má přístup také účet správce počítače.

Existuje postup, který může zabránit, aby malware použil soket ssh-agenta. Pokud je při přidávání klíče do ssh-agenta pomocí ssh-add použita volba -c, pak agent vyžaduje potvrzení od uživatele použitím programu zadaného proměnnou prostředí SSH_ASKPASS, když program ssh navazuje spojení.

Služby ssh-agenta mohou být „předávány“ (key forwarding, příp. agent forwarding) na server, ke kterému se uživatel připojuje, a tak zpřístupňovat klíče uživatele pro návazná spojení na další stroje. Díky tomu nemusí být na serveru privátní klíče pro připojování na další stroje. Na lokálním systému je důležité, aby uživatel root byl důvěryhodný, protože uživatel root může mimo jiné přímo číst soubor s klíčem. Pokud je spojení ssh-agenta předáváno na vzdálený systém, je důležité, aby byl důvěryhodný také uživatel root na vzdáleném systému, protože může přistupovat k soketu agenta na vzdáleném systému (ne ke klíči, který zůstává na lokálním systému).

Implementace

[editovat | editovat zdroj]

Stejnou funkčnost jako OpenSSH ssh-agent má mnoho různých programů, některé se značně odlišným uživatelským rozhraním. Například PuTTY používá ve své implemetaci ssh-agenta nazývané Pageant grafické uživatelské rozhraní. Některé nástroje poskytují funkčnost klíčového agenta pro asymetrické i symetrické klíče; tyto nástroje jako jedno ze svých aplikačních rozhraní obvykle poskytují i funkčnost ssh-agenta – patří k nim např. GNOME Keyring a KWallet.

Schopnost zapamatovat si přístupová hesla SSH mezi relacemi mají i někteří monolitičtí SSH klienti – příkladem je SecureCRT.

Apple MacOS

[editovat | editovat zdroj]

V operačním systému MacOS je ssh-agent dostupný od verze 10.5 Leopard vydané v roce 2007. Svobodné implementace ssh-agent třetích stran byly dostupné již dříve.[1]

Microsoft Windows

[editovat | editovat zdroj]

Klientské a serverové programy založené na OpenSSH jsou obsaženy ve Windows 10 od verze 1803. SSH klient a klíčový agent jsou ve výchozím nastavení povoleny a dostupné; SSH server je volitelnou funkcí na vyžádání.[2][3]

V tomto článku byl použit překlad textu z článku ssh-agent na anglické Wikipedii.

  1. DRIBIN, Dave. SSHKeychain Warning [online]. Dave Dribin's Blog, 2007-08-21. Dostupné online. 
  2. What's new for the Command Line in Windows 10 version 1803 [online]. 2018-03-08. Dostupné online. 
  3. Using the OpenSSH Beta in Windows 10 Fall Creators Update and Windows Server 1709 [online]. 2017-12-15. Dostupné online. 

Externí odkazy

[editovat | editovat zdroj]