Linux / Unix komanda: sshd

Nosaukums

sshd - OpenSSH SSH dēmons

Kopsavilkums

sshd [- deiqtD46 ] [- b biti ] [- f config_file ] [- g login_grace_time ] [- h host_key_file ] [- k key_gen_time ] [- opcija ] [- p ports ] [- u len ]

Apraksts

sshd (SSH daemon) ir ssh (1) dēmonu programma . Kopā šīs programmas aizstāj rlogin un rsh un nodrošiniet drošu šifrētu saziņu starp diviem neuzticamiem saimniekiem pa nedrošu tīklu. Programmas ir tik viegli uzstādīt un lietot, cik iespējams.

sshd ir dēmons, kas klausās klientu savienojumus. Parasti tas tiek sākts boot no / etc / rc. Tas atvieglo jaunu dēmonu katram ienākošajam savienojumam. Viltotās daemonas apstrādā atslēgu apmaiņu, šifrēšanu, autentifikāciju, komandu izpildi un datu apmaiņu. Šī sshd ieviešana vienlaicīgi atbalsta gan SSH protokola 1. un 2. versiju.

SSH protokola 1. versija

Katram uzņēmējam ir uzņēmēja specifiska RSA atslēga (parasti 1024 biti), ko izmanto, lai identificētu saimniekdatoru. Turklāt, kad dēmons sākas, tas ģenerē servera RSA atslēgu (parasti 768 biti). Šo atslēgu parasti reģenerē katru stundu, ja tā tiek izmantota, un nekad netiek saglabāta diskā.

Katru reizi, kad klients savieno dēmonu, tā reaģē ar publiskās resursdatora un servera atslēgas. Klients salīdzina RSA resursdatora atslēgu ar savu datu bāzi, lai pārliecinātos, ka tā nav mainījusies. Pēc tam klients ģenerē 256 bitu izlases numuru. Tas šifrē šo nejaušo skaitli, izmantojot gan resursdatora atslēgu, gan servera atslēgu, un nosūta šifrēto numuru uz serveri. Abas puses pēc tam izmanto šo nejaušo skaitli kā sesijas atslēgu, kuru izmanto, lai šifrētu visus turpmākos sakarus sesijā. Pārējā sesija tiek šifrēta, izmantojot parasto šifru, kas pašlaik ir Blowfish vai 3DES, un 3DES tiek izmantots pēc noklusējuma. Klients izvēlas šifrēšanas algoritmu , ko izmantot no servera piedāvātajiem.

Pēc tam serveris un klients ievadīs autentifikācijas dialogu. Klients mēģina autentificēt sevi, izmantojot autentifikāciju .rhosts, autentificēšanu kopā ar RSA resursdatora autentifikāciju, RSA izaicinājumu-atbildes autentifikāciju vai ar paroli balstītu autentifikāciju .

Routing autentifikācija parasti ir atspējota, jo tā ir fundamentāli nedroša, bet to var iespējot servera konfigurācijas failā, ja tas ir nepieciešams. Sistēmas drošība nav uzlabota, ja vien rshd rlogind un rexecd nav atspējotas (tādējādi pilnībā izslēdzot rlogin un rsh iekārtā).

SSH protokola 2. versija

2. versija darbojas līdzīgi: katrā saimniekdatorā ir uzņēmēja specifiska atslēga (RSA vai DSA), ko izmanto, lai identificētu saimniekdatoru. Tomēr, kad dēmons sākas, tas nerada servera atslēgu. Forward security tiek nodrošināts, izmantojot Diffie-Hellman atslēgas līgumu. Šis galvenais līgums nodrošina kopīgu sesijas atslēgu.

Pārējā sesija tiek šifrēta, izmantojot simetrisko šifru, kas pašlaik ir 128 bitu AES, Blowfish, 3DES, CAST128, Arcfour, 192 bitu AES vai 256 bitu AES. Klients izvēlas šifrēšanas algoritmu, ko izmantot no servera piedāvātajiem. Turklāt sesijas integritāte tiek nodrošināta ar kriptogrāfiskā ziņojuma autentifikācijas kodu (hmac-sha1 vai hmac-md5).

2. protokola versija nodrošina publiskās atslēgas lietotāju (PubKeyAuthentication) vai klienta saimniekdatora (HostbasedAuthentication) autentifikācijas metodi, parasto paroli autentifikāciju un uz problēmu balstītas metodes.

Komandu izpilde un datu pārsūtīšana

Ja klients veiks pati autentificēšanu, tiek ievadīts sesijas sagatavošanas dialogs. Šajā brīdī klients var pieprasīt tādas lietas kā pseido-tty piešķiršana, X11 pāradresācijas savienojumi, TCP / IP savienojumu pārsūtīšana vai autentifikācijas aģenta savienojuma pārsūtīšana uz drošo kanālu.

Visbeidzot, klients prasa apvalku vai komandas izpildi. Pēc tam pusēm tiek ievadīts sesijas režīms. Šajā režīmā abas puses var nosūtīt datus jebkurā laikā, un šādi dati tiek pārsūtīti uz / no korpusa vai komandas servera pusē, un klienta pusē esošo lietotāja termināli.

Kad lietotājprogramma beidzas, un visi pārsūtītie X11 un citi savienojumi ir aizvērti, serveris izsūta komandas izejas statusu klientam un abas puses iziet.

Sshd var konfigurēt, izmantojot komandrindas opcijas vai konfigurācijas failu. Komandrindas opcijas pārspēj konfigurācijas failā norādītās vērtības.

sshd pārveido konfigurācijas failu, kad tas saņem paātrinājuma signālu, SIGHUP , izpildot sevi ar nosaukumu, kuru tā sāka, ti, / usr / sbin / sshd

Iespējas ir šādas:

-b biti

Norāda bateriju skaitu ephemerālajā protokola versijas 1 servera taustiņā (noklusējuma 768).

-d

Atkļūdošanas režīms. Serveris nosūta verbose atkļūdošanas izvadi sistēmas žurnālā un neuzliek sevi fonā. Serveris arī nedarbosies un apstrādās tikai vienu savienojumu. Šī opcija paredzēta tikai servera atkļūdošanai. Multiple-d opcijas palielina atkļūdošanas līmeni. Maksimums ir 3.

-e

Kad šī opcija ir norādīta, sshd nosūtīs izvadi uz standarta kļūdu, nevis sistēmas žurnālu.

-f configuration_file

Norāda konfigurācijas faila nosaukumu. Noklusējums ir / etc / ssh / sshd_config sshd atsakās sākt, ja nav konfigurācijas faila.

-g login_grace_time

Piešķir klientam labvēlības laiku, lai autentificētu sevi (pēc noklusējuma 120 sekundes). Ja klients šo daudzu sekunžu laikā autentificē lietotāju, serveris atvienojas un iziet. Nulles vērtība norāda, ka nav ierobežojuma.

-h host_key_file

Norāda failu, no kura tiek izlasīts resursdatora atslēga. Šī opcija ir jāuzrāda, ja sshd netiek palaists kā root (jo parastos resursdatora galvenos failus parasti nevar nolasīt neviens, izņemot root). Pēc noklusējuma protokola versijai 1 ir / etc / ssh / ssh_host_key un / etc / ssh / ssh_host_rsa_key un / etc / ssh / ssh_host_dsa_key protokola 2. versijai. Var būt vairāki resursdatora atslēgu faili dažādām protokola versijām un resursdatora atslēga algoritmi.

-i

Norāda, ka sshd tiek palaists no inetd. Parasti sshd netiek palaists no inetd, jo tam nepieciešams ģenerēt servera atslēgu, pirms tā var atbildēt uz klientu, un tas var aizņemt desmitiem sekundes. Klientiem būs jāgaida pārāk ilgi, ja atslēga tiek atjaunota katru reizi. Tomēr ar maziem galvenajiem izmēriem (piemēram, 512), izmantojot sshd no inetd, var būt iespējams.

-k key_gen_time

Norāda, cik bieži reģenerē īslaicīgās protokola versijas 1 servera atslēgu (pēc noklusējuma 3600 sekundes vai vienu stundu). Motora reģenerācijas motīvs diezgan bieži ir tāds, ka taustiņu nekur netiek glabāts, un pēc aptuveni stundas kļūst neiespējami atpazīt atslēgu pārtverto sakaru atšifrēšanai pat tad, ja mašīna ir ieplīsusi vai fiziski aizturēta. Nulles vērtība norāda, ka atslēga nekad netiks atjaunota.

-v iespēja

Var izmantot, lai sniegtu opcijas konfigurācijas failā izmantotajā formātā. Tas ir noderīgi, lai norādītu opcijas, kurām nav atsevišķas komandrindas apzīmējuma.

-p ports

Norāda portu, kurā serveris klausās savienojumus (noklusējums 22). Atļauts izmantot vairākas porta iespējas. Konfigurācijas failā norādītās porti tiek ignorēti, kad tiek norādīts komandrindas ports.

-q

Klusais režīms. Neviens nav nosūtīts uz sistēmas žurnālu. Parasti tiek reģistrēts katra savienojuma sākums, autentificēšana un izbeigšana.

-t

Testa režīms. Pārbaudiet tikai konfigurācijas faila derīgumu un atslēgu veselību. Tas ir noderīgi, lai droši atjauninātu sshd, jo konfigurācijas opcijas var mainīties.

-u len

Šo opciju izmanto, lai norādītu lauka izmēru utmp struktūrā, kurā atrodas attālās saimniekdatora nosaukums. Ja atrisinātā resursdatora nosaukums ir garāks par len, tā vietā tiek izmantota punktētā decimāldaļa. Tas ļauj saimniekiem ar ļoti gariem resursdatora nosaukumiem, kas pārpilda šo lauku, lai to joprojām varētu vienreiz identificēt. Norādot - u0 norāda, ka utmp failā jāievieto tikai punktveida decimāldaļas. - u0 arī tiek izmantots, lai novērstu sshd veikt DNS pieprasījumus, ja to prasa autentifikācijas mehānisms vai konfigurācija. Autentifikācijas mehānismi, kam var būt nepieciešams DNS, ir RhostsAuthentication RhostsRSAAuthentication HostbasedAnathentication un izmantojot atslēgas failā iespēju == pattern-list . Konfigurācijas opcijas, kurām nepieciešams DNS, ietver USER @ HOST parauga izmantošanu AllowUsers vai DenyUsers

-D

Kad šī opcija ir norādīta, sshd neatvienojas un nekļūst par dēmonu. Tas ļauj viegli uzraudzīt sshd

-4

Forces sshd izmantot tikai IPv4 adreses.

-6

Forces sshd izmantot tikai IPv6 adreses.

Konfigurācijas fails

sshd skan konfigurācijas datus no / etc / ssh / sshd_config (vai failā, kas norādīts ar - f komandrindā). Faila formāts un konfigurācijas opcijas ir aprakstītas sshd_config5.

Pieteikšanās process

Kad lietotājs veiksmīgi piesakās, sshd rīkojas šādi:

  1. Ja pieteikšanās ir uz tty, un nav norādīta neviena komanda, izdrukā pēdējo pieteikšanās laiku un / etc / motd (ja vien konfigurācijas failā vai $ HOME / .hushlogin nav novērsta sadaļa Sx FILES).
  2. Ja pieteikšanās ir uz tty, reģistrē pieteikšanās laiku.
  3. Pārbaudes / etc / nologin, ja tāds ir, izdrukā saturu un aizver (ja vien root nav).
  4. Izmaiņas, kas jāpilda ar parastajām lietotāja privilēģijām.
  5. Izveido pamata vidi.
  6. Izlasa $ HOME / .ssh / vidi, ja tā pastāv, un lietotājiem ir atļauts mainīt savu vidi. Skatiet opciju PermitUserEnvironment sshd_config5.
  7. Izmaiņas lietotāja mājas direktorijā.
  8. Ja $ HOME / .ssh / rc eksistē, to izpilda; cits, ja / etc / ssh / sshrc eksistē, palaiž to; pretējā gadījumā darbojas xauth. `` Rc '' failiem tiek piešķirts X11 autentifikācijas protokols un sīkdatne standarta ievadīšanā.
  9. Darbojas lietotāja apvalks vai komanda.

Authorized_Keys failu formāts

$ HOME / .ssh / authorized_keys ir noklusējuma fails, kurā uzskaitītas publiskās atslēgas, kas ir atļautas RSA autentificēšanai protokola 1. versijā un publiskās atslēgas autentifikācijai (PubKeyAuthentication) 2. protokola versijā. AuthorizedKeysFile var izmantot, lai norādītu alternatīvu failu.

Katrā faila rindiņā ir viena atslēga (tukšas rindiņas un līnijas, kas sākas ar "#", tiek ignorētas kā komentāri). Katrs RSA publiskā atslēga sastāv no sekojošiem laukiem, kas atdalīti ar atstarpēm: opcijas, biti, eksponents, modulis, komentārs. Katra protokola 2. versijas publiskā atslēga sastāv no: opcijām, taustiņa tipam, kodētā koda atslēga, komentārs. Iespēju lauks nav obligāts; tā klātbūtne tiek noteikta atkarībā no tā, vai līnija sākas ar numuru vai nē (opciju lauks nekad sākas ar numuru). Biti, eksponents, modulis un komentāru lauki dod RSA atslēgu protokola 1. versijai; komentāra lauks netiek izmantots jebko (bet lietotājam tas var būt ērti, lai identificētu atslēgu). 2. protokola versijai atslēgas tips ir `` ssh-dss '' vai `` ssh-rsa ''

Ņemiet vērā, ka šajā failā esošās rindiņas parasti ir garākas par vairākiem simtiem bitu (sakarā ar publiskās atslēgas kodējuma lielumu). Jūs nevēlaties tos ievadīt; Tā vietā nokopējiet identitāti.pub id_dsa.pub vai failu id_rsa.pub un rediģējiet to.

sshd izpilda minimālo RSA atslēgas moduļa izmēru protokola 1 un protokola 2 atslēgas 768 bitiem.

Iespējas (ja tādas ir) sastāv no komatu atdalītas opciju specifikācijām. Nav atļauta neviena atstarpe, izņemot divkāršās kotācijas. Tiek atbalstītas šādas opciju specifikācijas (ņemiet vērā, ka opcijas atslēgvārdi ir gadījuma neatkarīgi):

no = modeļu saraksts

Norāda, ka papildus publiskās atslēgas autentifikācijai attālinātās mītnes kanoniskais nosaukums ir jāuzrāda komatu atdalītajā paraugu sarakstā ("*" un "?" Kalpo kā aizstājējzīmes). Sarakstā var būt ietverti arī modeļi, kas ir noraidīti, prefiksējot tos ar `! ' ; ja kanoniskā resursdatora nosaukums atbilst negatīvam paraugam, atslēga netiek pieņemta. Šīs opcijas mērķis ir pēc izvēles palielināt drošību: publiskās atslēgas autentifikācija pats par sevi neuzticas tīkla vai nosaukumu serveriem vai jebko (izņemot atslēgu); Tomēr, ja kāds kaut kā nozog atslēgu, atslēga ļauj iebrucējiem ieiet no jebkuras vietas pasaulē. Šī papildu opcija padara sarežģītāku nozagto atslēgu lietošanu (nosaukuma serveri un / vai maršrutētāji, izņemot tikai atslēgu, varētu tikt apdraudēti).

komand = komanda

Norāda, ka komanda tiek izpildīta, kad šī atslēga tiek izmantota autentifikācijai. Lietotāja sniegtā komanda (ja tāda ir) tiek ignorēta. Komandu palaiž pty, ja klients pieprasa pty; pretējā gadījumā tas palaist bez tty. Ja ir vajadzīgs 8 bitu tīrs kanāls, neviens nedrīkst pieprasīt pty vai arī jānorāda, ka nav iespējams ievadīt citātu, kas var tikt iekļauts komandā, citējot to ar backslash. Šī opcija varētu būt noderīga, lai ierobežotu noteiktas publiskās atslēgas, lai veiktu tikai konkrētu darbību. Piemērs varētu būt atslēga, kas ļauj veikt attālās dublējumkopijas, bet nekas cits. Ņemiet vērā, ka klients var norādīt TCP / IP un / vai X11 pārsūtīšanu, ja vien tie nav skaidri aizliegti. Ņemiet vērā, ka šī opcija attiecas uz apvalku, komandu vai apakšsistēmas izpildi.

vide = NAME = vērtība

Norāda, ka, pievienojot šo taustiņu, tiek pievienota virkne videi. Tādā veidā vides mainīgie iestatījumi ignorē citas noklusējuma vides vērtības. Ir atļauti vairāki šāda veida varianti. Pēc noklusējuma vides apstrāde ir atspējota un tiek kontrolēta, izmantojot iespēju PermitUserEnvironment . Ja funkcija UseLogin ir iespējota, šī opcija tiek automātiski atspējota.

bez ostas pāradresācija

Aizliegts TCP / IP pārsūtīšana, ja šī atslēga tiek izmantota autentifikācijai. Jebkurš ostas pieprasījums pēc klienta atgriež kļūdu. To var izmantot, piemēram, saistībā ar komandas opciju.

no-X11-pārsūtīšana

Tiek aizliegta X11 pārsūtīšana, ja šī atslēga tiek izmantota autentifikācijai. Visi X11 uz priekšu pieprasījumi no klienta atgriež kļūdu.

bez pārsūtīšanas

Aizliegts autentifikācijas līdzekļa pārsūtīšana, ja šī atslēga tiek izmantota autentifikācijai.

nav-pty

Novērš tty piešķiršanu (pieprasījums piešķirt pty neizdosies).

permitopen = saimniekdators: osta

Ierobežot vietējo `shsh -L '' portu pāradresāciju tā, ka tā var izveidot savienojumu tikai ar norādīto uzņēmēju un portu. IPv6 adreses var norādīt ar alternatīvu sintaksi: host / port Vairākas atļaujas opcijas var tikt izmantotas, atdalot tās ar komatu. Parametru saskaņošana netiek veikta norādītajos saimniekdatoru nosaukumos, tiem jābūt burtiem domēniem vai adresēm.

Piemēri

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

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

command = "dump / home", 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 faila formāts

Faili / etc / ssh / ssh_known_hosts un $ HOME / .ssh / known_hosts satur visu publisko atslēgu saimniekdatorus visiem pazīstamiem saimniekiem. Globālais fails ir jāsagatavo administratoram (neobligāti), un lietotāja fails tiek uzturēts automātiski: katru reizi, kad lietotājs savienojas no nezināma uzņēmēja, tā atslēga tiek pievienota katram lietotājam paredzētajam failam.

Katrā šo failu rindā ir šādi lauki: resursdatora nosaukumi, biti, eksponents, modulis, komentārs. Lauki ir atdalīti ar atstarpēm.

Tīkla nosaukumi ir komatu atdalīti modeļu saraksti ('*' un '?' Darbojas kā aizstājējzīmes); savukārt katrs modelis tiek salīdzināts ar kanonisko resursdatora nosaukumu (klienta autentificēšanas gadījumā) vai pret lietotājvārdu (ja autentificē serveri). Pirms parauga var būt arī "!" lai norādītu negāciju: ja resursdatora nosaukums atbilst negatīvam paraugam, tas netiek pieņemts (ar šo rindiņu), pat ja tas atbilstu citam rindas modelim.

Biti, eksponents un modulis tiek ņemti tieši no RSA resursdatora atslēgas; tos var iegūt, piemēram, no /etc/ssh/ssh_host_key.pub Izvēles komentāru lauks turpinās līdz līnijas beigām, un to neizmanto.

Rindas, kas sākas ar "#" un tukšās rindiņas tiek ignorētas kā komentāri.

Veicot resursdatora autentifikāciju, autentifikācija tiek pieņemta, ja jebkurai atbilstošai līnijai ir atbilstoša atslēga. Tādējādi ir pieļaujams (bet neiesakāms) vienādiem nosaukumiem būt vairākas līnijas vai dažādas saimniekdatora atslēgas. Tas neizbēgami notiks, kad failā tiek ievietotas īsas uzņēmēju vārdu formas no dažādiem domēniem. Iespējams, ka failos ir konfliktējoša informācija; autentifikācija tiek pieņemta, ja derīgu informāciju var atrast no jebkura faila.

Ņemiet vērā, ka šajos failos esošās rindiņas parasti ir simtiem rakstzīmju, un jūs noteikti nevēlaties ievadīt resursdatora atslēgas ar roku. Drīzāk, izveidojiet tos pēc skripta vai veicot /etc/ssh/ssh_host_key.pub un pievienojot resursdatora nosaukumus priekšpusē.

Piemēri

closenet, ..., 130.233.208.41 1024 37 159 ... 93 closenet.hut.fi cvs.openbsd.org, 199.185.137.3 ssh-rsa AAAA1234 ..... =

Skatīt arī

scp (1), sftp (1), ssh (1), ssh-add1, ssh-agent1, ssh-keygen1, login.conf5, modulis (5), sshd_config5, sftp-server8

T. Ylonen T. Kivinen M. Saarinen T. Rinne S. Lehtinen "SSH protokola arhitektūra" projekts-ietf-secsh-architecture-12.txt 2002. gada janvāris nepabeigts materiāls

M. Friedl N. Provos WA Simpson "Diffie-Hellman grupas apmaiņa par SSH transporta slāņa protokolu" projekts-ietf-secsh-dh-grupa-apmaiņa-02.txt 2002. gada janvāris nepabeigts materiāls

Svarīgi: izmantojiet vīriešu komandu ( % man ), lai redzētu, kā komanda tiek izmantota jūsu konkrētajā datorā.