SSH-AGENT(1) | SSH | SSH-AGENT(1) |
JMÉNO¶
ssh-agent - autentizační agent
POUŽITͶ
ssh-agent [-c | -s] [-d] [-a navaž_adresu] [-t životnost] [příkaz [parametry ...]]
ssh-agent [-c|-s] -k
POPIS¶
Program ssh-agent shromažďuje soukromé autentizační klíče (RSA i DSA). Ssh-agent by měl být odstartován na začátku X-session nebo login session, a všechna okna nebo ostatní programy by měly být startovány jako jeho potomci (příkaz zadaný jako parametr slouží normálně ke startu X Window Systemu nebo je uživatelským shellem). Programy odstartované z agenta jsou s ním propojeny a automaticky jej používají pro RSA autentizaci při přihlašování na jiné stroje pomocí ssh(1).
Parametry:
- -a adresa
- Naváže agenta na unixový socket bind_address. Implicitní adresa je /tmp/ssh-XXXXXXXXXX/agent.<ppid>.
- -c
- Generuje C-shell příkazy na standardní výstup. Toto je implicitní nastavení, pokud SHELL vypadá jako csh styl shellu.
- -d
- Ladící mód. Je-li zadán tento přepínač, ssh-agent nikdy neprovede fork.
- -k
- Ukončí současného ssh agenta. (dáno proměnnou prostředí SSH_AGENT_PID) -TP -s Generuje Bourne shell příkazy na standardní výstup. Toto je implicitní nastavení, pokud SHELL nevypadá jako csh styl shellu
- -t životnost
- Nastaví implicitní hodnotu pro maximální
délku patnosti identit vložených v agentovi.
Délka života může být
specifikována v sekundách, nebo ve formátu
definovaném sshd_config(5). Délka života
specifikovaná v ssh-add(1) přepíše hodnotu
definovanou pomocí parametru -t. Pokud není nastaven tento
parametr je maximální délka života
nekonečno.
- Jestliže je
- ssh-agent odstartován bez parametrů, poběží jako proces v pozadí. Přitom vypíše na stdout příkazy, které mohou být při spuštění v příkazu eval v shellech odvozených z sh nebo csh použity pro nastavení proměnných prostředí SSH_AUTH_SOCK a SSH_AGENT_PID. Proměnná prostředí SSH_AGENT_PID může být použita pro ukončení agenta příkazem kill, když už není potřeba (například při odhlašování z X-sezení atd.). Nejsou-li zadány žádné volby, ssh-agent zjistí podle hodnoty proměnné prostředí SHELL, jaký shell (z rodiny *csh nebo *sh shellů) je použit. Volba -c způsobí vypsání příkazu pro nastavení proměnných prostředí ve stylu csh shellu, volba -s ve stylu sh shellu.
Pamatujte, že v Unixech odvozených od System V (přinejmenším v OS IRIX a Solaris) proměnná prostředí SHELL nemusí obsahovat jméno aktuálního shellu, který provádí příkaz eval. Jestliže je v /etc/default/login nastavena proměnná prostředí ALTSHELL na YES, je proměnná prostředí SHELL nastavena na uživatelův login shell.
Volba -k může být použita k automatickému ukončení agenta. Ukončí agenta (pro jeho nalezení použije hodnotu proměnné prostředí SSH_AGENT_PID) a vypíše na stdout příkazy shellu, které zruší proměnné prostředí SSH_AUTH_SOCKET a SSH_AGENT_PID.
Agent zpočátku nemá žádný soukromý klíč. Klíče jsou přidávány příkazy ssh-add. Příkaz ssh-add při spuštění bez parametrů přidá obsah souboru $HOME/.ssh/identity. Jestliže má soubor přístupové heslo, ssh-add se na něj dotáže (použije malou X11 aplikaci pokud běží pod X11, nebo terminál pokud běží bez X). Potom zašle identitu agentovi. Agent může obsahovat několik identit; agent z nich vybere správnou automaticky. Příkaz ssh-add -l vypíše seznam identit aktuálně známých agentovi.
Výhodou je fakt, že agent je spuštěn na uživatelově lokálním PC, laptopu nebo terminálu. Autentizační data nemusí být uložena na žádném jiném stroji, a autentizační přístupová hesla nejsou nikdy posílána přes síť. Spojení s agentem je udržováno pomocí ssh, takže uživatel může bezpečně používat přístupová práva daná identitami kdekoli v síti.
Existují dvě základní cesty, jak agenta nastavit. První z nich je, že agent spustí nový podpříkaz, do kterého jsou exportovány nějaké proměnné prostředí, např. ssh-agent xterm&. Druhou možností je, že agent vytiskne potřebné shellovské příkazy, které pak mohou být spuštěny volajícím shellem.
Shell pak může použít tyto informace pro spojení s agentem.
Agent nikdy nepošle soukromý klíč přes požadovaný kanál. Místo toho jsou operace, které vyžadují soukromý klíč provedeny na straně agenta a výsledek bude zaslán žadateli. Díky tomuto postupu nejsou soukromé klíče vystaveny klientům, kteří agenta používají.
Je vytvořen unixový secket a jeho jméno je uloženo v proměnné SSH_AUTH_SOCK. Socket je dostupný pouze danému uživateli. Tato metoda může být snadno zneužita kořenovým uživatelem.
Promměnná prostředí SSH_AGENT_PID obsahuje ID číslo procesu agenta.
Agent je automaticky ukončen, když přikaz zadaný na příkazovém řádku skončí.
SOUBORY¶
- ~/.ssh/identity
- Obsahuje RSA autentizační identitu uživatele. Tento soubor nesmí být čitelný nikým kromě uživatele. Při generování klíče je možné zadat přístupové heslo; toto heslo bude použito na zašifrování soukromé části souboru. Soubor není používán přímo programem ssh-agent, ale jeho obsah je příkazem ssh-add přidán do agenta.
- ~/.ssh/id_dsa
- Obshuje protokol verze 2 DSA ověření identity uživatele.
- ~/.ssh/id_rsa
- Obshuje protokol verze 2 RSA ověření identity uživatele.
- /tmp/ssh-XXXXXXXXXX/agent<ppid>
- Unix-domain sokety použité pro spojení s autentizačním agentem. Sokety musí být čitelné pouze vlastníkem. Sokety musí být při ukončení agenta automaticky zrušeny. Nadřízený adresář adresáře ssh-$USER musí mít nastaven sticky bit.
VIZ TÉŽ¶
ssh-add (1), ssh-keygen (1), ssh (1), sshd (8)
AUTOŘI¶
OpenSSH je odvozeno od originálního a volného ssh 1.2.12, které bylo vydáno Tatu Ylonenem. Aaron Campbell, Bob Beck, MArkus Friedl, Niels Provos, Theo de Raadt and Dug Song odstranili mnohe chyby, doplnili funkčnost a vytvořili tak OpenSSH. Markus Friedl přispel k vývoji SSH protokolu ve verzích
1.5 a 2.0.
8. září 2009 | SSH |