název
sshd - OpenSSH SSH démon
Synopse
sshd -deiqtD46 -b bitů -F config_file -G login_grace_time -h host_key_file -k key_gen_time -Ó volba -str přístav -u jen
Popis
sshd (SSH Daemon) je démonový program pro ssh (1). Společně tyto programy nahrazují rlogin a rsh, a poskytují zabezpečenou šifrovanou komunikaci mezi dvěma nedůvěryhodnými hostiteli přes neistou síť. Programy jsou určeny pro snadnou instalaci a použití, jak je to jen možné.
sshd je démon, který poslouchá spojení od klientů. Za normálních okolností je spuštěn při zavádění z / etc / rc. Pro každé příchozí spojení je vyřazen nový démon. Vidlicové démony pracují s výměnou klíčů, šifrováním, ověřením, prováděním příkazů a výměnou dat. Tato implementacesshd podporuje protokoly SSH verze 1 a 2 současně.
SSH verze 1 protokolu
Každý hostitel má klíč RSA specifický pro hostitele (obvykle 1024 bitů), který se používá k identifikaci hostitele. Navíc, když démon spustí, generuje serverový klíč RSA (obvykle 768 bitů). Tato klávesa se normálně regeneruje každou hodinu, pokud byla použita, a nikdy není uložena na disku.
Kdykoli klient připojuje démon, reaguje pomocí veřejných klíčů a serverových klíčů. Klient porovná klíč hostitele RSA s vlastní databází, aby ověřil, že se nezměnil. Klient potom generuje 256-bitové náhodné číslo. Šifruje toto náhodné číslo pomocí klíčů hostitele a serveru a odešle šifrované číslo na server. Obě strany pak používají toto náhodné číslo jako klíč relace, který se používá k šifrování veškeré další komunikace v relaci. Zbývající část relace je zašifrována pomocí konvenční šifry, v současné době Blowfish nebo 3DES, přičemž standardně se používá 3DES. Klient si vybere šifrovací algoritmus, který se používá od těch, které nabízí server.
Dále server a klient zadejte ověřovací dialog. Klient se pokusí autentizovat pomocí autentizace .rhosts, ověřením .rhosts v kombinaci s ověřením hostitele RSA, ověřením odezvy na výzvu RSA nebo autentizací založenou na hesle.
Autentizace systému Rhosts je obvykle zakázána, protože je zásadně nejistá, ale v konfiguračním souboru serveru může být povolena, pokud je to požadováno. Zabezpečení systému se nezlepšujershdrlogind a rexecd jsou zakázány (čímž úplně zablokuje rlogin a rsh do počítače).
Protokol SSH verze 2
Verze 2 funguje podobně: Každý hostitel má klíče specifické pro hostitele (RSA nebo DSA), který se používá k identifikaci hostitele. Při spuštění démona však nevytváří klíč serveru. Zabezpečení vpřed je zajištěno prostřednictvím klíčové dohody společnosti Diffie-Hellman. Výsledkem této klíčové dohody je sdílený klíč relace.
Zbytek zasedání je zašifrován pomocí symetrické šifry, v současnosti 128 bitových AES, Blowfish, 3DES, CAST128, Arcfour, 192 bitových AES nebo 256 bitových AES. Klient si vybere šifrovací algoritmus, který se používá od těch, které nabízí server. Navíc celistvost relace je poskytována prostřednictvím ověřovacího kódu šifrovací zprávy (hmac-sha1 nebo hmac-md5).
Protokol verze 2 poskytuje metodu ověřování uživatelů založenou na veřejném klíči (PubkeyAuthentication) nebo host hostitele (HostbasedAuthentication), konvenční autentizaci heslem a metody založené na reakci na výzvu.
Spuštění příkazu a předávání dat
Pokud se klient úspěšně ověří, zadá se dialog pro přípravu relace. V tomto okamžiku může klient požadovat věci, jako je přidělení pseudo-tty, přesměrování přesměrování X11, předávání spojení TCP / IP nebo přesměrování připojení ověřovacího agenta přes zabezpečený kanál.
Nakonec klient buď požádá o shell nebo o provedení příkazu. Strany pak vstupují do režimu relace. V tomto režimu mohou obě strany odesílat data kdykoli a tato data jsou předána do / z shellu nebo příkazu na straně serveru a uživatelský terminál na straně klienta.
Po ukončení uživatelského programu a ukončení všech předaných X11 a dalších připojení server odešle klientovi stav výstupu příkazu a obě strany opustí.
sshd lze konfigurovat pomocí volby příkazového řádku nebo konfiguračního souboru. Možnosti příkazového řádku překonávají hodnoty zadané v konfiguračním souboru.
sshd znovu načte konfigurační soubor, když obdrží signál zavěšení,SIGHUP provedením s názvem, který byl spuštěn jako, tj. / usr / sbin / sshd
Možnosti jsou následující:
-b bitů
Určuje počet bitů v klíči serveru dočasného protokolu verze 1 (výchozí hodnota 768).
-d
Debugovací mód. Server odesílá podrobný výstup ladění do systémového protokolu a neumí se do pozadí. Server také nebude fungovat a bude zpracovávat pouze jedno připojení. Tato možnost je určena pouze pro ladění serveru. Možnosti více -d zvyšují úroveň ladění. Maximum je 3.
-E
Pokud je tato možnost zadána,sshd pošle výstup namísto systémového protokolu standardní chybu.
-F configuration_file
Určuje název konfiguračního souboru. Výchozí hodnota je / etc / ssh / sshd_configsshdodmítne spustit, pokud neexistuje žádný konfigurační soubor.
-G login_grace_time
Poskytuje klientům čas potřebný k ověření (výchozí 120 sekund). Pokud se klientovi během několika sekund nepodaří ověřit uživatele, server se odpojí a ukončí.Hodnota nula znamená žádný limit.
-h host_key_file
Určuje soubor, ze kterého je čteno hostitelský klíč. Tato možnost musí být uvedena v případěsshd není spuštěn jako root (protože běžné soubory klíčů hostitele obvykle nikdo nečte, nikoli root). Výchozí hodnota je pro protokol verze 1 / etc / ssh / ssh_host_key a / etc / ssh / ssh_host_rsa_key a / etc / ssh / ssh_host_dsa_key pro protokolovou verzi 2. Je možné mít několik souborů klíčů hostitele pro různé verze protokolu a klíč hostitele algoritmy.
-i
Určuje tosshd je spuštěn z inetd.sshd obvykle není spuštěn z inetdu, protože potřebuje generovat klíč serveru před tím, než může reagovat na klienta, a to může trvat desítky sekund. Klienti by museli čekat příliš dlouho, kdyby klíč byl obnoven pokaždé. Při použití malých velikostí klíčů (např. 512)sshd z inetd může být proveditelné.
-k key_gen_time
Určuje, jak často se obnoví klíč serveru dočasného protokolu verze 1 (výchozí 3600 sekund nebo jedna hodina). Motivace k regeneraci klíče poměrně často spočívá v tom, že klíč není nikde uložen a po zhruba hodině nebude možné obnovit klíč pro dešifrování zachycených komunikací, a to ani v případě, že je stroj prasklý nebo fyzicky zabaven. Hodnota nula znamená, že klíč nikdy nebude regenerován.
-Ó volba
Může být použito k poskytnutí možností ve formátu použitém v konfiguračním souboru. To je užitečné při zadávání voleb, pro které není samostatná příznaková řádka příkazového řádku.
-p přístav
Určuje port, na kterém server naslouchá připojení (výchozí 22). Možnosti více portů jsou povoleny. Porty zadané v konfiguračním souboru jsou ignorovány při zadání portu příkazového řádku.
-q
Tichý režim. Do systémového protokolu se nezobrazí nic. Obvykle se zaznamenává počátek, ověřování a ukončení každého spojení.
-t
Testovací mód. Zkontrolujte pouze správnost konfiguračního souboru a správnost klíčů. To je užitečné pro aktualizacisshd spolehlivě se mohou změnit konfigurační možnosti.
-u jen
Tato volba slouží k zadání velikosti pole v poliutmp struktura, která obsahuje jméno vzdáleného hostitele. Je-li vyřešené jméno hostitele delší než jen bude místo toho použito tečkované desetinné číslo. To umožňuje hostitelům s velmi dlouhými názvy hostitelů, které přetékají toto pole, aby byly ještě jednoznačně identifikovány. Specifikace -u0 znamená, že do souboru utmp musí být vloženy pouze tečky s tečkami. -u0 je také možné použít k zabráněnísshd z požadavků DNS, pokud to nevyžaduje ověřovací mechanismus nebo konfigurace. Ověřovací mechanismy, které mohou vyžadovat DNS, zahrnujíRhostsAuthenticationRhostsRSAAuthentication HostBasedAuthentication a pomocí az = pattern-listv souboru klíčů. Možnosti konfigurace, které vyžadují službu DNS, zahrnují použití znaku USER @ HOSTpatternAllowUsers neboDenyUsers
-D
Je-li tato možnost zadánasshd nebude se oddělovat a nestane se démonem. To umožňuje snadné sledovánísshd
-4
Sílysshd používat pouze adresy IPv4.
-6
Sílysshd používat pouze adresy IPv6.
Soubor konfigurace
sshd čte konfigurační data z / etc / ssh / sshd_config (nebo soubor specifikovaný pomocí -F na příkazovém řádku). Formát souboru a možnosti konfigurace jsou popsány v sshd_config5.
Proces přihlášení
Když se uživatel úspěšně přihlásí,sshd provede následující:
- Pokud je přihlašovací jméno na tty a žádný příkaz nebyl zadán, vytiskne poslední přihlašovací čas a / etc / motd (pokud není zabráněno v konfiguračním souboru nebo $ HOME / .hushlogin viz část SX FILES).
- Pokud je přihlašovací jméno na tty, zaznamenává přihlašovací čas.
- Kontroluje / etc / nologin, pokud existuje, vytiskne obsah a ukončí (pokud není root).
- Změny spouštěné s běžnými oprávněními uživatelů.
- Nastaví základní prostředí.
- Číst $ HOME / .ssh / prostředí, pokud existuje a uživatelé mohou měnit své prostředí. VizPermitUserEnvironment v sshd_config5.
- Změny domovského adresáře uživatele.
- Pokud existuje $ HOME / .ssh / rc, spustí se; else pokud / etc / ssh / sshrc existuje, spustí to; jinak běží xauth. Soubory `` rc '' jsou přiřazeny autentizačnímu protokolu X11 a cookie ve standardním vstupu.
- Spouští uživatelský shell nebo příkaz.
Formát souboru Authorized_Keys
$ HOME / .ssh / authorized_keys je výchozí soubor, který uvádí veřejné klíče, které jsou povoleny pro autentizaci RSA v protokolu verze 1 a pro ověření veřejných klíčů (PubkeyAuthentication) v protokolu verze 2.AutorizovanýKeysFile lze specifikovat alternativní soubor.
Každý řádek souboru obsahuje jeden klíč (prázdné řádky a řádky začínající znakem # jsou ignorovány jako komentáře). Každý veřejný klíč RSA se skládá z následujících polí, oddělených mezerami: volby, bity, exponent, modul, komentář. Každá veřejná klíčová verze protokolu 2 se skládá z: voleb, keytype, key64 encoded key, comment. Pole možností je volitelné. jeho přítomnost je určena podle toho, zda linka začíná číslem nebo ne (pole možností nikdy nezačíná číslem). Políčka bitů, exponentů, modulů a komentářů dávají klíč RSA pro protokolovou verzi 1; pole poznámky se nepoužívá pro nic (ale může být pro uživatele snadné identifikovat klíč). Pro protokol verze 2 je typ klíče `` ssh-dss '' nebo `` ssh-rsa ''
Všimněte si, že řádky v tomto souboru jsou obvykle dlouhé několik set bajtů (kvůli velikosti kódování veřejného klíče). Nechcete je zadávat; namísto toho zkopírujte identitu.pub id_dsa.pub nebo soubor id_rsa.pub a upravte jej.
sshd vynucuje minimální velikost modulu kláves RSA pro protokoly 1 a protokol 2 klíče 768 bitů.
Možnosti (pokud jsou k dispozici) se skládají z specifikací volby oddělených čárkami. Žádné mezery nejsou povoleny, s výjimkou dvojitých uvozovek. Jsou podporovány následující specifikace možností (poznamenejte si, že klíčová slova jsou nerozlišují velká a malá písmena):
z = pattern-list
Určuje, že kromě ověřování veřejnými klíčy musí být kanonický název vzdáleného hostitele přítomen v seznamu oddělených čárkami ("*" a "?" Slouží jako zástupné znaky). Seznam může také obsahovat vzory negované tím, že je předepisuje `! ' ; jestliže kanonické jméno hostitele odpovídá negovanému vzoru, klíč není přijat. Účelem této možnosti je volitelně zvýšit zabezpečení: autentizace pomocí veřejného klíče sama o sobě nedůvěřuje síťovým nebo jmenovacím serverům ani cokoliv (ale klíč); nicméně, pokud někdo nějak ukradne klíč, klíč dovoluje vetřelcovi, aby se přihlásil odkudkoliv na světě. Tato další volba ztěžuje používání odcizeného klíče (jmenovité servery a / nebo směrovače by musely být kromě klíčů ohroženy).
příkaz = příkaz
Určuje, že příkaz je spuštěn při každém použití tohoto klíče pro ověření. Příkaz dodaný uživatelem (pokud existuje) je ignorován. Příkaz je spuštěn na pty, pokud klient požaduje pty; jinak je spuštěn bez tty. Pokud je požadován 8bitový čistý kanál, nesmí být požadován pty nebo by měl být zadánno-pty Citace může být obsažena v příkazu citací s zpětným lomítkem. Tato volba může být užitečná pro omezení určitých veřejných klíčů, které provádějí pouze určitou operaci. Příkladem může být klíč, který umožňuje vzdálené zálohování, ale nic jiného. Všimněte si, že klient může zadávat přesměrování TCP / IP a / nebo X11, pokud nejsou výslovně zakázány. Všimněte si, že tato volba platí pro provedení shellu, příkazu nebo subsystému.
prostředí = NAME = hodnota
Určuje, že se při přihlašování pomocí tohoto klíče přidá řetězec do prostředí. Proměnné prostředí nastavené tímto způsobem potlačují ostatní výchozí hodnoty prostředí. Je povoleno několik možností tohoto typu. Zpracování prostředí je ve výchozím nastavení zakázáno a je řízeno prostřednictvímPermitUserEnvironment volba. Tato možnost je automaticky vypnuta, pokudPoužívejteLogin je povoleno.
no-forward-forwarding
Zakázání přesměrování protokolu TCP / IP, pokud je tento klíč použit pro ověřování. Jakékoli požadavky na předávání portů klientem vrátí chybu. To může být použito, např. Ve spojení spříkaz volba.
no-X11-forwarding
Zakazuje předávání X11 při použití tohoto klíče pro ověření. Jakékoli žádosti o předání X11 od klienta vrátí chybu.
no-agent-forwarding
Zakazuje předávání ověřovacího agenta při použití tohoto klíče pro ověřování.
no-pty
Zabraňuje alokaci tty (žádost o přidělení pty se nezdaří).
allowopen = host: port
Omezte místní`` ssh -L '' port přesměrování tak, že se může připojit pouze k určenému hostiteli a portu. Adresy IPv6 lze zadat pomocí alternativní syntaxe: hostitel / port Násobek povoleno možnosti mohou být aplikovány odděleně čárkami. Na zadaných názvech hostitelů se nevyrovná žádná shoda, musí být doslovné domény nebo adresy.
Příklady
1024 33 12121 … 312314325 [email protected]
z = "*. niksula.hut.fi,! pc.niksula.hut.fi" 1024 35 23 … 2334 ylo @ niksula
příkaz = "dump / home", no-pty, no-forward-forwarding 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 souboru Ssh_Known_Hosts
Soubory / etc / ssh / ssh_known_hosts a $ HOME / .ssh / known_hosts obsahují hostitelské veřejné klíče pro všechny známé hostitele. Globální soubor by měl být připraven správcem (volitelný) a soubor per uživatele je udržován automaticky: kdykoli se uživatel připojí z neznámého hostitele, je jeho klíč přidán do souboru pro každého uživatele.
Každý řádek v těchto souborech obsahuje následující pole: názvy hostitelů, bity, exponent, modul, komentář. Políčka jsou oddělena mezerami.
Názvy hostitelů jsou seznamy vzorků oddělených čárkami ("*" a "?" Fungují jako zástupné znaky); každý vzorek je následně porovnán s kanonickým názvem hostitele (při autentizaci klienta) nebo s jménem dodaným uživatelem (při autentizaci serveru). Vzor může také předcházet `! ' pro označení negace: jestliže název hostitele odpovídá negovanému vzoru, není přijato (tímto řádkem), i když odpovídá jinému vzoru na řádku.
Bity, exponent a modul jsou odebírány přímo z hostitelského klíče RSA; lze je získat například z /etc/ssh/ssh_host_key.pub Volitelné pole s komentáři pokračuje až na konec řádku a nepoužívá se.
Řádky začínající znakem "#" a prázdné řádky jsou ignorovány jako komentáře.
Při ověřování hostitele je ověřování akceptováno, pokud má nějaký odpovídající řádek správný klíč. Je tedy přípustné (ale nedoporučuje se) mít několik řádků nebo různé hostitelské klíče pro stejná jména. To se nevyhnutelně stane, když se do souboru vloží krátké formy názvů hostitelů z různých domén. Je možné, že soubory obsahují konfliktní informace; ověření je přijato, pokud lze z obou souborů nalézt platné informace.
Všimněte si, že řádky v těchto souborech jsou obvykle dlouhé stovky znaků a určitě nechcete ručně zadávat klíčy hostitele. Spíše je vygenerujte pomocí skriptu nebo pomocí příkazu /etc/ssh/ssh_host_key.pub a přidáním názvů hostitelů na přední stranu.
Příklady
closenet, …, 130.233.208.41 1024 37 159 … 93 closenet.hut.fi cvs.openbsd.org, 199.185.137.3 ssh-rsa AAAA1234 ….. =
Viz též
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 "SSH protokolová architektura" draft-ietf-secsh-architecture-12.txt leden 2002 práce probíhajícího materiálu
M. Friedl N. Provos W. A. Simpson "Exchange Exchange skupiny Diffie-Hellman pro protokol SSH Transport Layer" draft-ietf-secsh-dh-group-exchange-02.txt leden 2002 práce probíhajícího materiálu
Důležité: Použijte muž příkaz ( % muž ), abyste zjistili, jak je v daném počítači použit příkaz.