Ssh-agent

Z Wikipedie, otevřené encyklopedie
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řihláš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ěží po dobu trvání vzdálené relace a jsou nakonfigurovány tak, aby hledaly soukromý klíč uživatele v souborech v uživatelově domovském adresáři (např. ~/.ssh/id_rsa). Pro zvýšení datové bezpečnosti (například proti útočníkovi, který může číst libovolný soubor v lokálním systému souborů), je třeba soukromý klíč uložit 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 trvání lokální relace poskytuje klíče SSH klientům, se kterými komunikuje pomocí Unix domain socketu.

Problémy datové bezpečnosti[editovat | editovat zdroj]

ssh-agent vytvoří 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. Oprávnění jsou nastavena způsobem obvyklým v Linuxu nebo Unixu: agent při startu vytvoří v /tmp nový podadresář, do něhož má přístup pouze uživatel nebo správce počítače, a v něm vytvoří soket pro komunikaci s ssh.

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) 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ý uživatel root také na vzdáleném systému, protože může přistupovat k soketu agente na vzdáleném systému (ne ke klíči, který zůstává na lokálním systému).

Implementace[editovat | editovat zdroj]

Existuje mnoho různých programů, které mají stejnou funkčnost jako OpenSSH ssh-agent, některé s velmi odlišným uživatelským rozhraním. Například PuTTY používá grafické uživatelské rozhraní v jeho dodávány Pageant ssh-agent. Existují nástroje, které poskytují funkčnost klíčového agenta pro symetrické i asymetrické klíče; tyto nástroje obvykle poskytují i funkčnost ssh-agenta jako jedno ze svých aplikačních rozhraní – patří k nim např. GNOME Keyring a KWallet.

Někteří monolitičtí SSH klienti mají schopnost zapamatovat si přístupová hesla SSH mezi relacemi – 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]

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

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]