Linux / Unix Kommando: sshd

Numm

sshd - OpenSSH SSH Daemon

Synopsis

sshd [- deiqtD46 ] [- b bits ] [- f config_file ] [- g login_grace_time ] [- h host_key_file ] [- k key_gen_time ] [- o option ] [- p port ] [- u len ]

Beschreiwung

sshd (SSH Daemon) ass den Daemon Programm fir ssh (1). Zesumme benotze dës Programmer Rlogin an rsh , a séchere verschlësselte Kommunikatioun tëscht zwee net traustéierten Hosten iwwer engem onbewosst Netz. D'Programme sinn als einfach ze installéieren an ze benotzen wéi méiglech.

sshd ass den daemon deen vu Verbindungen vu Clients lauschtert. Et ass normalerweis beim Booten vu / etc / rc Et schreift en neien Daemon fir all kommend Verbindung. De Forked daemons handelen Haaptaustausch, Verschlësselung, Authentifikatioun, Kommando Realiséierung a Datenaustausch. Dës Ëmsetzung vun sshd ënnerstëtzt esouguer SSH Protokoll Versioun 1 an 2 gläichzäiteg.

SSH Protokoll Versioun 1

All Host ass e Host-spezifesche RSA-Schlëssel (normalerweis 1024 Bits) benotzt fir den Host z'identifizéieren. Zousätzlech, wann de Daemon ufänkt, generéiert en Server RSA-Taste (normalerweis 768 Bits). Dëse Schlëssel gëtt normalerweis all Stonn benotzt, wann et benotzt gouf, a gëtt ni op Diskette gespeichert.

Wann ëmmer e Client verbënnt de Fagel mat dem ëffentlechen Host an de Serverbuerten. De Client vergläicht de RSA-Host-Keess géint seng eege Datenbank fir ze verifizéieren datt et net geännert huet. De Client generéiert duerno eng 256 Bit Zufallnummer. Et verschlësselt dës Zufallnummer mat Hëllef vum Hosttau an de Serverschlëssel a verschéckt de verschlëssene Nummer op den Server. Déi zwou Säiten benotzen dann dës Zufallnummer wéi e Sessiounsleef deen benotzt gëtt fir all weider Kommunikatiounen an der Sitzung ze verschlësselen. De Rescht vun der Sessioun ass verschlëmmert mat engem konventionellen Chiffre, derbäi Blowfish oder 3DES, mat 3DES ginn standardiséiert. De Client wählt de Verschlësselungsalgorithmus fir aus de Servicer vum Server ze benotzen.

Niewt dem Server an de Client kommen eng Authentisatiounsdialog. De Client versicht dës Authentizéierung ze benotzen .rhosts Authentifikatioun, .rhosts Authentifikatioun kombinéiert mat der RSA-Host-Authentifikatioun, der RSA Challenge-Responsioun Authentifikatioun oder der Passwuert baséiert Authentifikatioun .

Rhosts Authentifikatioun ass normalerweis behënnert ginn, well et grondsätzlech onbeweeg war, awer wann se se gewënscht sinn an der Serverkonfiguratiounsdatei aktivéiert ginn. Systemsécherheet gëtt net verbessert, ausser rshd rlogind a rexecd ausgeschalt ginn (also komplett rlogin a rsh in der maschin).

SSH Protokoll Versioun 2

Versioun 2 funktionnéiert ähnlech: Jiddegen Host ass e waartenspezifesche Schlëssel (RSA oder DSA) benotzt fir den Host z'identifizéieren. Wann de Daemon souwäit fänkt un net e Server-Taste. Virun Sécherheet ass duerch e groussen Diffie-Hellman-Schlëssel vereinbart ginn. Dëse Schlësselkontrakt bréngt e gemeinsame Sessiounsschloss.

De Rescht vun der Sessioun ass verschlëmmert mat engem symmetresche Chiffre, aktuell 128 Bit AES, Blowfish, 3DES, CAST128, Arcfour, 192 Bit AES oder 256 Bits AES. De Client wählt de Verschlësselungsalgorithmus fir aus de Servicer vum Server ze benotzen. Zousätzlech ass d'Integratiounssitzung duerch e kryptographesche Message Authentificatiounscode (hmac-sha1 oder hmac-md5) versuergt ginn.

Protokoll-Versioun 2 proposéiert en Public Key User (PubkeyAuthentication) oder Client Host (HostbasedAuthentication) Authentifikatiounsmethod, klassesch Passwuert Authentifizéierung an Défidenz-baséiert Methoden.

Command Execution an Datenverféierung

Wann de Client selbstverständlech authentifizéiert, gëtt e Dialog fir d'Preparatioun vun der Sitzung agaangen. Zu dësem Zäitpunkt kann de Client d'Dinge opmaachen wéi de Pseudo-Tty ze ginn, d'X11 Verbindungen ze forwarden, d'TCP / IP Verbindungen an d'Forwardéierung vun der Authentifikatiounsagentenverbindung iwwert den Securne Kanal ze loossen.

Schliissend de Client entweder eng Schell oder d'Ausféierung vun engem Kommando. D'Säiten setzen an de Sessiounsmodus. An dësem Rhythmus kënnt op där enger Säit irgendwellech Donnéeën ze schécken, an dës Donnéeën ginn un / aus der Shell oder Kommando op der Serversäit verschéckt an de User-Terminal op der Client-Säit.

Wann de Userprogramm ofgeschalt gëtt an all Forward X11 an aner Verbindungen closed closed, de Server schéckt den Ausgabestatus vum Client an den Client an zwou Ausgruewen.

sshd kann mat Kommandozeilenoptiounen oder enger Konfiguratiounsdatei konfiguréiert ginn. Kommandozeilenoptiounen überschwätzen Wäerter déi an der Konfiguratiounsdatei spezifizéiert ginn.

sshd erënnert seng Configuratiounsdatei wann se en Hangupsignal krut, SIGHUP andeems se selwer mat dem Numm bezeechent gouf wéi et huet, dh / usr / sbin / sshd

D'Optiounen sinn wéi folgend:

-b Bits

Gitt d'Nummer vun den Bits an der Ephemeralprotokoll Versioun 1 Server-Taste (Standard 768).

-d

Debug-Modus. De Server schéckt verbose Debugausgang op de Systemprotest an hëlt sech net am Hannergronn. De Server wäert och net schaffen an nëmmen eng Verbindung erofhuelen. Dës Optioun ass just fir Debugging fir den Server geduecht. Méi e puer D-Optiounen erhéijen d'Debuggingniveau. Maximum ass 3.

-e

Wann dës Optioun spezifizéiert gëtt, sshd schreift d'Ausgab an de Standardfehler anstatt de Systemprotest.

-f configuration_file

Gitt den Numm vun der Konfiguratiounsdatei. De Standard gëtt / etc / ssh / sshd_config sshd refuséiert fir ze starten wann et keng Konfiguratiounsdatei gëtt.

-g login_grace_time

Gitt d'Gitt Zäit fir Clienten ze authentifizéieren (Standard 120 Sekonnen). Wann de Client net klappt datt de Benotzer innerhalb vu ville Sekonne authentizéiert ass, zerlees de Server an ass of. Ee Wäert vu Null weist keng Limit.

-h host_key_file

Gitt eng Datei aus aus deem engem Hostschlüssel geliwwert gëtt. Dës Optioun muss geint kréien wann sshd net als root benotzt gëtt (wéi d'normale Hosttrib Dateien sinn normalerweis net vun engem iert awer Root liesen). De Standard ass / etc / ssh / ssh_host_key fir Protokoll Versioun 1 a / etc / ssh / ssh_host_rsa_key and / etc / ssh / ssh_host_dsa_key for protocol version 2. Et ass méiglech datt verschidden Hutteschlësser Fichier fir déi verschidden Protokollversiounen an den Haaptfënster Algorithmen.

-i

Gitt fest datt sshd vu Inetd gefeelt gëtt. sshd gëtt normalerweis net vun onetd gefeelt well et muss de Serverschlëssel generéieren, ier et op den Client reagéiert ka ginn, an dëst kann zéng Sekonnen daueren. Clienten hu sech ze laang wart, wann de Schlëssel all Kéier regeneréiert gouf. Awer mat kleng Schlësselgréissten (z. B. 512) mat sshd vu Inetd ka realiséierbar sinn.

-k key_gen_time

Gitt fest, wéi oft d'Ephemeral Protokoll-Versioun 1 Serveurschloss regeneréiert ass (Standard 3600 Sekonnen, oder eng Stonn). D'Motivatioun fir den Key regeneréiert zimlech séier ass datt de Schlëssel néiereg ginn ass, a no ongeféier eng Stonn ass et net méiglech, de Schlëssel fir d'entschlëssele kommunikative Kommunikatioun ze erhéijen, och wann d'Maschinn entzunn oder physesch sehbehënnert huet. Ee Wäert vu Null weist datt de Schlëssel nëtt méi regeneréiert gëtt.

-ooptioun

Kann benotzt ginn fir Optiounen an dem Format an der Konfiguratiounsdatei ze benotzen. Dëst ass nëtzlech fir Spezifizéierungsoptioune fir datt et keen separat Kommando-Linnebanner gëtt.

-p Hafen

Gitt den Hafen an deem den Server fir Verbindungen héieren (default 22). Verschidde Portsoptiounen ginn erlaabt. Ports déi an der Konfiguratiounsdatei spezifizéiert ginn ignoréiert wann e Command Line Port uginn.

-q

Quiet Modus. Näischt gëtt an de Systemprotokoll geschéckt. Normalerweis den Ufank, d'Authentifikatioun an d'Enn vun all Verbindung sinn protokolléiert.

-t

Testmodus. Nëmmen Kontroll de Gültegkeet vun der Konfiguratiounsdatei an d'Hygiene vun de Schlëssel. Dëst ass nëtzlech fir d'Aktualiséierung sshd zouverlässeg ze ginn, wann d'Konfiguratiounsméiglechkeeten sech änneren.

-u len

Dës Säit gëtt benotzt fir d'Gréisst vum Feld an der utmp Struktur ze spezifizéieren déi de Remote HostName hält. Wann de beschloss Héviessnam méi länger ass wéi d'Punkt-Dezimalwert gëtt benotzt. Dëst léisst Hosteren mat ganz laange Hostennamen, déi dëse Feld iwwerschwemmen, nach ëmmer e-eindeuteg identifizéiert. Gitt - u0 weist datt nëmmen Punktninn Dezimaladressen an der utmp-Datei gesat ginn. - u0 gëtt och benotzt fir sshd ze verhënneren datt DNS-Ufroen unmaachen , ausser datt d'Authentifizéierung Mechanismus oder Konfiguratioun et brauch. Authentisatiounsmechanismen déi DNS kann néideg sinn datt RhostsAuthentifizéierung RhostsRSAAuthentifizéierung HostbasedAuthentication benotzt a mat der aus = Muster-Lëscht opmaacht an engem Schlësseldatei benotzt. Konfiguratiounsoptiounen, déi DNS erforderen, beinhalten mat engem USER @ HOST Muster an AllowUsers oder DenyUsers

-D

Wann dës Optioun spezifizéiert sshd gëtt net ofgeholl an ass net daemon ginn. Dëst erméiglecht d'Iwwerwaachung vu sshd

-4

Forces sshd nëmme IPv4 Adressen benotzen.

-6

Forces sshd benotzt IPv6 Adressen nëmme benotzen.

Configuratiounsdatei

sshd liest Konfiguratiounsdateien vun / etc / ssh / sshd_config (oder de Fichier mat - f op der Kommandozeil). D'Dateieformat a Konfiguratiounsoptiounen ginn am sshd_config5 beschrieben.

Login Process

Wann e Benotzer mat Erfolleg ugemellt loggt , sshd folgend:

  1. Wann de Login ass op en tty, a kee Kommando gouf spezifizéiert, dréckelt d'lescht Loginzeit a / etc / motd (ausser wann et an der Konfiguratiounsdatei oder vum $ HOME / .hushlogin net an der Rubrik Sx FILES gespaart gëtt).
  2. Wann de Login ass op e Knäppchen, kuckt d'Loginzäit.
  3. Kontrollen / etc / nologin wann et existéiert, gedréckt Inhalt a Quitt (ausser root).
  4. Ännerunge fir normal Benotzeruservirbereedungen ze lafen.
  5. Setzt éischter Basis.
  6. Liest $ HOME / .ssh / Ëmfeld, wann et existéiert an Benotzer kënnen d'Umeldunge änneren. Kuckt d'Option PermitUserEnvironment op sshd_config5.
  7. Ännerunge fir de Verwalter vum User ze benotzen.
  8. Wann $ HOME / .ssh / rc existéiert, lafen se; soss wann / etc / ssh / sshrc existéiert, lafe se; soss laacht xauth. D'`` rc '' Dateie gi vum X11 Authentifikatiounsprotokoll an de Cookie an der Standardeingung.
  9. De Benotzerkont oder de Kommando läährt.

Autoriséiert_Keys Dateiformat

$ HOME / .ssh / authorized_keys ass de Standarddatei deen de Public Keys lists lists assuréiert fir RSA Authentifikatioun an Protokoll Versioun 1 a fir d'Public Key Authentifizéierung (PubkeyAuthentication) am Protokoll Versioun 2. AuthorizedKeysFile kann benotzt ginn fir eng alternativ Datei ze spezifizéieren.

Jiddwer Linn vun der Datei enthält e Schlëssel (lee Zeilen an Zeilen mat engem `# 'ginn als Kommentaren ignoréiert). All RSA-Public Key besteht aus den folgenden Felder, duerch Leerplazen getrennt: Optiounen, Bits, Exponent, Modul, Kommentar. All Protokoll Versioun 2 ëffentleche Schlëssel besteet aus: Optiounen, Schlësseltype, Base64 encodéiert Schlëssel, Kommentar. D'Optiounsfeld ass fakultativ; D'Präsenz ass festgestallt ginn, ob d'Linn mat enger Zomm ass oder net (d'Méiglechkeeten Feld ni fänkt mat enger Zuel un). Déi Bits, Exponent, Modul a Kommentarfeld ginn dem RSA-Schlëssel fir de Protokoll Versioun 1; De Kommentarfeld gëtt net fir alles gemeet (awer vläicht fir den User kann de Schlëssel identifizéieren). Fir Protokoll Versioun 2 ass de Schlëssel Type `` ssh-dss '' oder `` ssh-rsa ''

Bedenkt datt d'Zeilen an dëser Datei normalerweis méi wéi honnerte Bytes laang sinn (wéinst der Gréisst vun der ëffentlecher Kodéierung). Dir wëllt se net opmaachen; anstatt, kopéiert d'identity.pub id_dsa.pub oder d'id_rsa.pub-Datei an änneren.

sshd verstäerkt e minimale RSA-Schlësselmodulgréisst fir de Protokoll 1 a vum Protokoll 2 vun 768 Bits.

D'Optiounen (wann dobäi) besteet aus Comma-Separaturoptiounspezifikatiounen. Keen Raum si permetteg, ausser innerhalb doppelter Zitater. Déi folgend Optiounspezifikatioune ginn ënnerstëtzt (vergiess datt d'Schlësselwahlen Fall-on-Sensitive sinn):

aus = Muster-Lëscht

Gitt an datt et niewent der ëffentlecher Authentifizéierung vun der ëffentlecher Schlëssel muss de kanonesche Numm vum Remote Host an der Comma-getrennter Lëscht vu Musteren (`* 'an` `` als Plazebuch gedréckt ginn). Déi Lëscht kënnt och Modeller mat der Präfixioun mat '!! ;; wann den kanonesche Host Numm mat engem negéierten Muster entsprécht, de Schlëssel ass net akzeptéiert. De Zweck vun dëser Optioun ass d'Optioun erhéisse Sécherheet: d'Public Key Authentifizéierung selwer selwer vertraut net vum Netzwierk oder Nummereier oder soss (awer de Schlëssel); Allerdéngs, wann e ka jiddwereen de Schlëssel stëllt, ass de Schlëssel e Intruder fir iwwerall an der Welt anzemelden. Dës zousätzlech Optioun huet mat engem gestrafften Schlëssel méi schwiereg (Nummer an / oder Router missten ënnerschriwwe ginn fir nëmmen de Schlëssel).

Kommando = Kommando

Gitt an datt de Kommando ausgefouert gëtt, wann dee Schlëssel fir Authentifikatioun benotzt gëtt. De Kommando gëtt vum Benotzer (wann iergendeen) ignoréiert. De Kommando leeft op e pty wann de Client e pty huet; soss ass et ouni eist lass. Wann een 8-bit propper Kanal néideg ass, däerf een keng pty forderen oder sollt no-pty spezifizéieren En Zitat kann am Kommando ofgeschloss ginn, andeems et e Backslash zitéiert. Dës Optioun kéint nëtzlech sinn fir bestëmmte ëffentleche Schlësselen ze beschränken fir nëmme eng spezifesch Operatioun ze maachen. E Beispill ass e Schlëssel deen e Remote-Backupen erlaabt ass awer näischt. Notéiert datt de Client TCP / IP an / oder X11 Forwarding spezifizéiere, ausser datt se explizit verbueden sinn. Remarkéiert datt dës Optioun fir Shell-, Kommando- oder Ënnersetzungsofkomm ass.

Environnement = NAME = Wäert

Gitt fest datt de Sait fir d'Ëmfeld hinzeweisen wann Dir ugewise gouf. Umvirhang Variablen setze souvill anere Standard-Umeldewerten. Méi verschidde Méiglechkeeten vun dësem Typ ginn et erlaabt. D'Emweltveraarbechtung ass standardiséiert ginn a gëtt iwwer d' PermitUserEnvironment- Optioun kontrolléiert. Dës Säit gëtt automatesch deaktivéiert wann UseLogin aktivéiert ass.

Nexport Forwarding

Verbueden TCP / IP Forwarding wann dësen Schlëssel fir Authentifikatioun benotzt. All Porte-Forward-Ufroen vum Client klickt e Fehler. Dëst kéint benotzt ginn, zB an der Verbindung mat der Kommandooptioun .

nee-X11 Forwarding

Forbids X11 Forwarding wann dëse Schlëssel fir Authentifikatioun benotzt. All X11 Forward Ufroen vum Client klickt e Fehler.

Net-Agent-Forwarding

Forbids Authentifikatiounsagent Forwarding wann dësen Schlëssel fir Authentifikatioun benotzt gëtt.

no-pty

Verhéiert d'Tty-Allocatioun (eng Demande fir e Pty ze ginn ass falsch).

Permitopen = Host: Hafen

Limit lokal `` ssh -L '' Portemonnement esou datt et nëmme mat dem spezifizéierten Host an Hafen kënnt. IPv6 Adressen kënnen mat enger alternativer Syntax spezifizéiert ginn: Host / Port Verschidde Permitopen Optiounen kënnen ugewisen ginn duerch Komma. Kee Musteresprooch gëtt op den ugepassten Hostnumm gemaach, sie mussen literal Domänen oder Adressen sinn.

Beispiller

1024 33 12121 ... 312314325 ylo@foo.bar

aus = "*. niksula.hut.fi,! pc.niksula.hut.fi" 1024 35 23 ... 2334 ylo @ niksula

Kommando = "dump / haus", no-pty, no-port-forwarding 1024 33 23 ... 2323 backup.hut.fi

Permitopen = "10.2.1.55:80", Permitopen = "10.2.1.56:25" 1024 33 23 ... 2323

Ssh_Known_Hosts Dateiformat

D'/ etc / ssh / ssh_known_hosts an $ HOME / .ssh / known_hosts- Dateien beherrschen ëffentleche Schlësselen fir all bekannt Hosten. De globale Fichier sollt vum Administrator virgesi ginn (optional), an d'Per-User-Datei gëtt automatesch behaapt: wann de Benotzer mat engem onbekannte Host verbënnt, ass de Schlëssel zu der Per-User-Datei hinzu ginn.

Jiddwer Linn vun dësen Fichier enthält d'Felder: Hostnames, Bits, Exponent, Modul, Kommentar. D'Felder ginn duerch Leerlächen getrennt.

Hostnames sinn eng comma-getrennte Lëscht vu Musteren ('*' an '?' Si als Plazebuch); All Muster, am Géigendeel, ass mat dem kanonesche Hostnam (mat Authentifizéierung vun engem Client) oder géint den Benotzer ugeschniddenen Numm (wann authentifizéiert ee Server). E Muster kann och virdrun vun `! fir negativ Iddien ze weisen: Wann den Host Numm mat engem negéierten Muster entsprécht, ass et net ugeholl ginn (och dës Linn) och wann et engem anere Muster op der Linn ass.

Bits, Exponent a Modul sinn direkt vum RSA-Host-Schlëssel geholl ginn; Si kënnen z. B. vu /etc/ssh/ssh_host_key.pub erwaart ginn. De fakultativ Kommentarfeld fënnt weider bis zum Enn vun der Linn a gëtt net benotzt.

Lines, déi mat '#' begleeden a leede Linnen ignoréieren als Kommentaren.

Wann Dir d'Authentifikatioun vum Host erstallt hutt, gëtt d'Authentifikatioun akzeptéiert wann all passende Linn den eegene Schlëssel huet. Et ass also zulässlech (awer net recommandéiert) verschidden Linnen oder aner Hosttafelen fir déi selwecht Nimm ze hunn. Dëst wäert zwangsleefeg passéiert wann kierzlech Form vun Hostnammen aus verschiddene Domänen an der Datei gesat ginn. Et ass méiglech, datt d'Dateie Konflikter informéieren; Authentifikatioun ass acceptéiert wann valabel Informatioune vu Datei sinn.

Bedenkt datt d'Zeilen an dësen Fichier typesch Honnerte vun Charakteren laang sinn an Dir hutt definitiv net d'Host-Tasten duerch Hand drécken. Vill méi ze generéieren si mat engem Skript oder andeems se /etc/ssh/ssh_host_key.pub gehalen an d'Hostennamen un der Franséischerweis addéieren.

Beispiller

An deem Kontext ass et och net esou,

Kuck och

scp (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 Protokollarchitektur" Entworf-ietf-secsh-Architektur-12.txt Januar 2002 Aarbechter am Material

M. Friedl N. Provos WA Simpson "Diffie-Hellman Group Exchange fir den SSH Transport Layer Protocol" Entworf-ietf-secsh-dh-group-exchange-02.txt Januar 2002

Wichteg: Benotzt de Mann Kommando ( % Mann ) fir ze kucken wéi e Kommando op Äre Computer benotzt.