názov
sshd - OpenSSH SSH démon
synopse
sshd -deiqtD46 -b bity -F config_file -g login_grace_time -hod host_key_file -k key_gen_time -o voľba -p prístav -u ľan
popis
sshd (SSH Daemon) je démonový program pre ssh (1). Spoločne tieto programy nahrádzajú rlogin a rsha zabezpečiť bezpečnú šifrovanú komunikáciu medzi dvoma nedôveryhodnými hostiteľmi cez neistú sieť. Programy sú určené na to, aby boli čo najjednoduchšie nainštalované a používané.
sshd je démon, ktorý počúva pripojenia od klientov. Za normálnych okolností sa spúšťa pri bootovaní z / etc / rc Vytvára nový démon pre každé prichádzajúce spojenie. Vidlicové démoni pracujú s výmenou kľúčov, šifrovaním, autentifikáciou, vykonávaním príkazov a výmenou dát. Táto implementáciasshd podporuje súčasne SSH protokol verzie 1 a 2.
SSH protokol verzia 1
Každý hostiteľ má kľúč RSA špecifický pre hostiteľa (zvyčajne 1024 bitov), ktorý sa používa na identifikáciu hostiteľa. Okrem toho, keď začína démon, generuje serverový kľúč RSA (normálne 768 bitov). Tento kľúč je zvyčajne obnovovaný každú hodinu, ak bol použitý, a nikdy nie je uložený na disku.
Kedykoľvek klient spája démon, reaguje pomocou verejných kľúčov hostiteľa a servera. Klient porovná kľúč RSA hostiteľa s vlastnou databázou a overí, či sa nezmenil. Klient potom vygeneruje 256-bitové náhodné číslo. Šifruje toto náhodné číslo pomocou kľúča hostiteľa a kľúča servera a odošle šifrované číslo na server. Obe strany potom použijú toto náhodné číslo ako kľúč relácie, ktorý sa používa na šifrovanie všetkých ďalších komunikácií v relácii. Zvyšok relácie je zašifrovaný pomocou bežnej šifry, v súčasnosti Blowfish alebo 3DES, pričom štandardne sa používa 3DES. Klient si vyberie šifrovací algoritmus, ktorý sa použije od tých, ktoré ponúka server.
Potom server a klient zadajú autentifikačný dialóg. Klient sa pokúsi autentifikovať pomocou autentifikácie .rhosts, autentifikácie .rhosts v kombinácii s autentifikáciou hostiteľa RSA, autentifikáciou RSA challenge-response alebo overovaním na základe hesla.
Autentifikácia systému Rhosts je zvyčajne zakázaná, pretože je v podstate neistá, ale môže byť povolená v konfiguračnom súbore servera, ak je to potrebné. Zabezpečenie systému nie je vylepšenérshdrlogind a rexecd sú zakázané (čím úplne zablokujú rlogin a rsh do stroja).
SSH verzia 2 protokolu
Verzia 2 funguje podobne: Každý hostiteľ má kľúč špecifický pre hostiteľa (RSA alebo DSA), ktorý sa používa na identifikáciu hostiteľa. Keď sa však démon spustí, nevygeneruje kľúč servera. Zabezpečenie vpred je poskytované prostredníctvom kľúčovej dohody spoločnosti Diffie-Hellman. Táto kľúčová dohoda vedie k kľúču zdieľanej relácie.
Zvyšok relácie je šifrovaný pomocou symetrickej šifry, v súčasnosti 128 bitových AES, Blowfish, 3DES, CAST128, Arcfour, 192 bitových AES alebo 256 bitových AES. Klient si vyberie šifrovací algoritmus, ktorý sa použije od tých, ktoré ponúka server. Okrem toho je integrita relácie zabezpečená prostredníctvom kryptografickej autentifikačnej správy (hmac-sha1 alebo hmac-md5).
Protokol verzia 2 poskytuje metódu overovania používateľa založenú na verejných kľúčoch (PubkeyAuthentication) alebo hostiteľskej hostiteľskej hostiteľskej metóde (HostbasedAuthentication), konvenčné autentifikácie heslom a metódy založené na reakcii na výzvy.
Spravovanie a prenos údajov
Ak sa klient úspešne autentizuje, zadá sa dialógové okno na prípravu relácie. V tomto okamihu môže klient požadovať napríklad pridelenie pseudo-tty, preposielanie pripojení X11, preposielanie pripojení TCP / IP alebo presmerovanie pripojenia agentu overovania cez zabezpečený kanál.
Nakoniec klient buď požiada shell alebo vykonanie príkazu. Po stranách prejdite do režimu relácie. V tomto režime môžu obe strany kedykoľvek posielať dáta a takéto údaje sa posielajú do / z príkazu shell alebo príkazu na strane servera a užívateľský terminál na strane klienta.
Po ukončení užívateľského programu a ukončení všetkých preposielaných X11 a iných pripojení server pošle klientovi výstupný stav príkazu a obe strany opustí.
sshd možno konfigurovať pomocou volieb príkazového riadku alebo konfiguračného súboru. Možnosti príkazového riadku prepisujú hodnoty zadané v konfiguračnom súbore.
sshd opätovne načíta konfiguračný súbor, keď dostane signál zavesenia,SIGHUP vykonaním s názvom, ktorý bol spustený ako, napr. / usr / sbin / sshd
Možnosti sú nasledujúce:
-b bity
Určuje počet bitov v kľúči servera prvej verzie protokolu 1 (predvolené 768).
-d
Režim ladenia. Server odošle podrobný ladenie výstup do systémového denníka a nevedie sa do pozadia. Server tiež nefunguje a spracováva iba jedno spojenie. Táto možnosť je určená len na ladenie pre server. Možnosti viacerých -d zvyšujú úroveň ladenia. Maximálne je 3.
-e
Keď je táto voľba zadaná,sshd pošle výstup na štandardnú chybu namiesto systémového denníka.
-f konfig_soubor
Určuje názov konfiguračného súboru. Predvolená hodnota je / etc / ssh / sshd_configsshdodmietne spustiť, ak neexistuje konfiguračný súbor.
-g login_grace_time
Poskytuje klientom čas potrebný na ich autentifikáciu (predvolené 120 sekúnd). Ak sa klientovi počas niekoľkých sekúnd nepodarí overiť totožnosť, server sa odpojí a ukončí.Hodnota nula označuje žiadny limit.
-h host_key_file
Určuje súbor, z ktorého sa číta kľúč hostiteľa. Táto možnosť musí byť uvedená, aksshd nie je spustený ako root (pretože bežné súbory kľúčov hostiteľa obvykle nie sú čitateľné nikým iným ako root). Predvolená hodnota je verzia protokolu / / etc / ssh / ssh_host_key pre protokol verzie 1 a / etc / ssh / ssh_host_rsa_key a / etc / ssh / ssh_host_dsa_key pre verziu protokolu 2. Je možné mať viaceré súbory kľúčov hostiteľa pre rôzne verzie protokolov a kľúč hostiteľa algoritmy.
-i
Určuje tosshd sa beží z inetd.sshd sa bežne nespúšťa z inetdu, pretože potrebuje vygenerovať kľúč servera predtým, ako môže reagovať na klienta, čo môže trvať desiatky sekúnd. Klienti by museli príliš dlho čakať, keby bol kľúč zakaždým regenerovaný. Avšak pri použití malých veľkostí kľúčov (napr. 512)sshd z inetd môže byť uskutočniteľné.
-k key_gen_time
Určuje, ako často sa regeneruje kľúč servera prvej verzie protokolu 1 (predvolené 3600 sekúnd alebo jednu hodinu). Motivácia na obnovenie kľúča pomerne často spočíva v tom, že kľúč nie je uložený nikde a po približne jednej hodine sa stáva, že nie je možné obnoviť kľúč na dešifrovanie zachytenej komunikácie, a to aj v prípade, že je stroj popraskaný alebo fyzicky zabavený. Hodnota nula znamená, že kľúč nebude nikdy regenerovaný.
-o voľba
Môže sa použiť na poskytnutie možností vo formáte použitom v konfiguračnom súbore. To je užitočné pri určovaní možností, pre ktoré neexistuje žiadna samostatná príznaková príkazová riadka.
-p prístav
Určuje port, na ktorom server počúva pripojenia (predvolené 22). Možnosti viacerých portov sú povolené. Porty špecifikované v konfiguračnom súbore sa ignorujú pri zadaní portu príkazového riadka.
-q
Tichý režim. Do systémuového denníka sa nezasiela nič. Bežne sa zaznamená začiatok, overovanie a ukončenie každého spojenia.
-t
Testovací mód. Skontrolujte len správnosť konfiguračného súboru a správnosť kľúčov. To je užitočné pre aktualizáciusshd spoľahlivo, pretože sa môžu zmeniť nastavenia.
-u ľan
Táto voľba sa používa na určenie veľkosti poľa v priečinkuutmp štruktúra, ktorá obsahuje meno vzdialeného hostiteľa. Ak je vyriešený názov hostiteľa dlhší než ľan bude namiesto toho použitá desatinná hodnota bodkovaná. To umožňuje hosťom s veľmi dlhými hostiteľskými názvami, ktoré pretečia toto pole, aby boli stále jednoznačne identifikované. Určenie -u0 znamená, že do súboru utmp by mali byť vložené iba tečkované desatinné adresy. -u0 sa tiež používa na prevenciusshd od žiadostí o DNS, pokiaľ to nevyžaduje mechanizmus autentifikácie alebo konfigurácia. Autentizačné mechanizmy, ktoré môžu vyžadovať DNS, zahŕňajúRhostsAuthenticationRhostsRSAAuthentication HostbasedAuthentication a použitím az = vzor-listuv kľúči. Možnosti konfigurácie, ktoré vyžadujú DNS, zahŕňajú použitie znaku USER @ HOSTpatternAllowUsers aleboDenyUsers
-D
Ak je táto voľba zadanásshd nebude odpojený a nestane sa démonom. To umožňuje jednoduché monitorovaniesshd
-4
silysshd používať iba adresy IPv4.
-6
silysshd používať iba adresy IPv6.
Konfiguračný súbor
sshd číta konfiguračné údaje z / etc / ssh / sshd_config (alebo súbor špecifikovaný s -F na príkazovom riadku). Formát súboru a možnosti konfigurácie sú popísané v sshd_config5.
Proces prihlásenia
Keď sa používateľ úspešne prihlási,sshd robí nasledujúce:
- Ak je prihlásenie na tty a nie je zadaný žiadny príkaz, vytlačí posledný čas prihlásenia a / etc / motd (ak to nie je zabránené v konfiguračnom súbore alebo $ HOME / .hushlogin pozri sekciu Sx FILES).
- Ak je prihlásenie na tty, zaznamená sa prihlasovací čas.
- Kontroluje / etc / nologin, ak existuje, vytlačí obsah a ukončí (ak nie root).
- Zmeny bežiace s bežnými používateľskými privilégiami.
- Nastavuje základné prostredie.
- Číta $ $ HOME / .ssh / prostredie, ak existuje a používatelia môžu zmeniť svoje prostredie. Pozrite siPermitUserEnvironment v sshd_config5.
- Zmeny domovského adresára používateľa.
- Ak $ HOME / .ssh / rc existuje, spustí to; inak, ak / etc / ssh / sshrc existuje, spustí to; inak beží xauth. Súborom `` rc '' sa priradí autentifikačný protokol X11 a cookie na štandardnom vstupe.
- Spúšťa shell alebo príkaz používateľa.
Formát súboru Authorized_Keys
$ HOME / .ssh / authorized_keys je predvolený súbor, ktorý uvádza verejné kľúče, ktoré sú povolené na autentifikáciu RSA v protokole verzie 1 a na overovanie verejných kľúčov (PubkeyAuthentication) v protokole verzie 2.AuthorizedKeysFile sa môže použiť na špecifikáciu alternatívneho súboru.
Každý riadok súboru obsahuje jeden kľúč (prázdne riadky a riadky začínajúce znakom # sú ignorované ako komentáre). Každý verejný kľúč RSA pozostáva z nasledujúcich polí, oddelených medzerami: možnosti, bity, exponent, modul, komentár. Každá verejná kľúčová verzia protokolu 2 sa skladá z: možností, typu kľúča, kľúča kódovaného base64, komentár. Pole možností je voliteľné. jeho prítomnosť sa určuje podľa toho, či riadok začína číslom alebo nie (pole s možnosťami sa nikdy nezačína číslom). Polia bitov, exponentov, modulov a komentárov poskytujú kľúč RSA pre verziu protokolu 1; pole poznámky sa nepoužíva na čokoľvek (ale môže byť pre používateľa vhodné na identifikáciu kľúča). Pre verziu protokolu 2 je typ kľúča `` ssh-dss '' alebo `` ssh-rsa ''
Všimnite si, že riadky v tomto súbore sú zvyčajne dlhé niekoľko stoviek bajtov (kvôli veľkosti kódovania verejného kľúča). Nechcete ich zadávať; skopírujte súbor identity.pub id_dsa.pub alebo súbor id_rsa.pub a upravte ho.
sshd vynucuje minimálnu veľkosť kľúčového modulu RSA pre protokol 1 a protokol 2 klávesy s 768 bitmi.
Možnosti (ak sú k dispozícii) pozostávajú z špecifikácií voľby oddelených čiarkou. Nie sú povolené žiadne medzery, s výnimkou dvojitých úvodzoviek. Sú podporované nasledujúce špecifikácie volieb (všimnite si, že kľúčové slová s možnosťou nie sú citlivé na veľké a malé písmená):
z = vzor-listu
Určuje, že okrem overovania verejnými kľúčmi musí byť kanonický názov vzdialeného hostiteľa prítomný v zozname vzoriek oddelených čiarkami ("*" a "?" Slúžia ako zástupné znaky). Zoznam môže tiež obsahovať vzory negované tým, že ich predprimuje znakom `! ' ; ak kanonické meno hostiteľa zodpovedá negovanému vzoru, kľúč nie je akceptovaný. Účelom tejto možnosti je voliteľne zvýšiť bezpečnosť: autentifikácia verejným kľúčom sama osebe nedôveruje sieťovým alebo menovacím serverom ani čokoľvek (ale kľúč); Ak však niekto nejako ukradne kľúč, kľúč umožňuje vniknutiu vniknutia z ktoréhokoľvek miesta na svete. Táto dodatočná možnosť komplikuje používanie ukradnutého kľúča (okrem kľúča by sa mali narušiť aj menovacie servery a / alebo smerovače).
príkaz = príkaz
Určuje, že príkaz sa vykoná vždy, keď sa tento kľúč používa na autentifikáciu. Príkaz dodaný používateľom (ak existuje) je ignorovaný. Príkaz je spustený na pty, ak klient požaduje pty; inak sa beží bez tty. Ak je požadovaný 8-bitový čistý kanál, nemožno požadovať pty alebo by ste ho mali špecifikovaťno-pty Citácia môže byť zahrnutá do príkazu tak, že ju zadáte spätným lomítkom. Táto možnosť môže byť užitočná na obmedzenie niektorých verejných kľúčov, aby vykonávali iba určitú operáciu. Príkladom môže byť kľúč, ktorý umožňuje vzdialené zálohovanie, ale nič iné. Upozorňujeme, že klient môže špecifikovať presmerovanie TCP / IP a / alebo X11, pokiaľ nie sú výslovne zakázané. Všimnite si, že táto voľba platí pre shell, príkaz alebo podsystém.
prostredie = NAME = hodnota
Určuje, že reťazec sa pridáva do prostredia pri prihlasovaní pomocou tohto kľúča. Premenné prostredia nastavené týmto spôsobom prekonávajú iné štandardné hodnoty prostredia. Mnohé možnosti tohto typu sú povolené. Spracovanie prostredia je v predvolenom nastavení zakázané a je riadené prostredníctvomPermitUserEnvironment voľba. Táto možnosť sa automaticky vypne, akUseLogin je umožnené.
no-port-forwarding
Zakazuje presmerovanie protokolu TCP / IP, ak sa tento kľúč používa na autentifikáciu. Akékoľvek požiadavky na preposlanie portov klientom vrátia chybu. To sa môže použiť napríklad v spojení spríkaz voľba.
no-X11-forwarding
Zakazuje presmerovanie X11, keď sa tento kľúč používa na autentifikáciu. Akékoľvek žiadosti o preposlanie X11 od klienta vrátia chybu.
ne-agent-forwarding
Zakazuje presmerovanie overovacieho agenta, keď sa tento kľúč používa na autentifikáciu.
no-pty
Zabraňuje alokácii tty (žiadosť o pridelenie pty zlyhá).
permitopen = hostiteľ: port
Obmedziť miestne`` ssh -L '' presmerovanie portov tak, že sa môže pripojiť iba k určenému hostiteľovi a portu. Adresy IPv6 je možné špecifikovať alternatívnou syntaxou: host / prístav násobok permitopen Možnosti môžu byť použité oddelene čiarkami. Na zadané názvy hostiteľov sa nevykonáva žiadna zhoda vzhľadu, musia to byť doslovné domény alebo adresy.
Príklady
1024 33 12121 … 312314325 [email protected]
z = "*. niksula.hut.fi,! pc.niksula.hut.fi" 1024 35 23 … 2334 ylo @ niksula
príkaz = "dump / home", no-pty, no-forward-forwardovanie 1024 33 23 … 2323 backup.hut.fi
allowopen = "10.2.1.55:80", allowopen = "10.2.1.56:25" 1024 33 23 2323
Formát súboru Ssh_Known_Hosts
Súbory / etc / ssh / ssh_known_hosts a $ HOME / .ssh / known_hosts obsahujú hostiteľské verejné kľúče pre všetkých známych hostiteľov. Globálny súbor by mal byť pripravený administrátorom (voliteľný) a súbor pre jednotlivých používateľov sa udržiava automaticky: kedykoľvek sa používateľ pripojí z neznámeho hostiteľa, jeho kľúč sa pridá do súboru pre užívateľa.
Každý riadok v týchto súboroch obsahuje nasledujúce polia: názvy hostiteľov, bity, exponent, modul, komentár. Polia sú oddelené medzerami.
Názvy hostiteľov sú zoznamom vzoriek oddelených čiarkami ("*" a "?" Pôsobia ako zástupné znaky); každý vzor je zase porovnateľný s kanonickým názvom hostiteľa (pri autentifikácii klienta) alebo s menom dodaným používateľom (pri autentifikácii servera). Vzor môže tiež predchádzať znak "!" na označenie negovania: ak sa názov hostiteľa zhoduje s negovaným vzorom, nie je prijatý (týmto riadkom), aj keď zodpovedá inému vzoru na riadku.
Bity, exponent a modul sú prevzaté priamo z kľúča hostiteľa RSA; možno ich získať napríklad z /etc/ssh/ssh_host_key.pub Voliteľné pole s poznámkami pokračuje na koniec riadka a nepoužíva sa.
Linky začínajúce znakom "#" a prázdne riadky sa ignorujú ako komentáre.
Pri autentifikácii hostiteľa je autentifikácia akceptovaná, ak akýkoľvek zodpovedajúci riadok má správny kľúč. Je preto prípustné (ale neodporúča sa) mať niekoľko riadkov alebo rôzne hostiteľské kľúče pre rovnaké názvy. To sa nevyhnutne stane, keď sa v súbore vložia krátke formy hostiteľských mien z rôznych domén. Je možné, že súbory obsahujú konfliktné informácie; autentifikácia je akceptovaná, ak je možné nájsť platné informácie z každého súboru.
Všimnite si, že riadky v týchto súboroch sú zvyčajne stovky znakov dlhé a určite nechcete ručne písať kľúč hostiteľa. Skôr ich vygenerujte pomocou skriptu alebo pomocou súboru /etc/ssh/ssh_host_key.pub a pridaním názvov hostiteľov vpredu.
Príklady
closenet, …, 130.233.208.41 1024 37 159 … 93 closenet.hut.fi cvs.openbsd.org, 199.185.137.3 ssh-rsa AAAA1234 ….. =
Pozri tiež
scsh (1), sftp (1), ssh (1), ssh-add1, ssh-agent1, ssh-keygen1, login.conf5, moduli (5), sshd_config5, sftp-server8
T. Ylonen T. Kivinen M. Saarinen T. Rinne S. Lehtinen "Architektúra protokolu SSH" draft-ietf-secsh-architecture-12.txt január 2002 neprebiehajúci materiál
M. Friedl N. Provos W. A. Simpson "Diffie-Hellman Group Exchange pre protokol SSH Transport Layer" draft-ietf-seksh-dh-group-exchange-02.txt január 2002 neprebiehajúci materiál
dôležité: Použi muž príkaz ( % muž ), aby ste zistili, ako sa príkaz používa vo vašom konkrétnom počítači.