Skip to main content

Viss par Linux / Unix komandu: sshd

Anonim

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 -o iespēja -p osta -tu len

Apraksts

sshd (SSH daemon) ir ssh (1) dēmonu programma. Kopā šīs programmas aizstāj rlogin un rsh, un nodrošināt drošu šifrētu saziņu starp diviem neuzticamiem saimniekiem nedrošā tīklā. 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. Šī ieviešanasshd atbalsta gan SSH protokola 1. un 2. versiju vienlaicīgi.

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 vienrshdrlogind un rexecd ir atspējoti (tādējādi pilnībā atspējojot 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 atkārtoti izlases konfigurācijas failu, kad tas saņem paātrinājuma signālu,SIGHUP izpildot sevi ar nosaukumu, kas tika uzsākts, piemēram, / 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 Sistēmas žurnāla vietā sūtīs izvadi uz standarta kļūdu.

-f config_file

Norāda konfigurācijas faila nosaukumu. Noklusējums ir / etc / ssh / sshd_configsshdatsakā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 jāuzrāda, jasshd netiek palaists kā root (jo parastos resursdatora galvenos failus parasti nevar lasīt ikviens, 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 tosshd tiek palaists no inetd.sshd parasti netiek palaists no inetd, jo tam ir 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, izmantojot mazus galvenos izmērus (piemēram, 512)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.

-o 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 osta

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 atjaunināšanaisshd droši, jo konfigurācijas iespējas var mainīties.

-u len

Šo opciju izmanto, lai norādītu lauka lielumu mapēutmp Struktūra, kurā ir attālā resursdatora nosaukums. Ja atrisinātā resursdatora nosaukums ir garāks par len tā vietā tiks izmantota punktēta decimālā vērtība. 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ērstusshd no DNS pieprasījumu veikšanas, ja to pieprasa autentifikācijas mehānisms vai konfigurācija. Autentifikācijas mehānismi, kas var būt nepieciešami DNS iekļaušanaiRhostsAuthenticationRhostsRSAAuthentication HostbasedAuthentication un izmantojotno = modeļu sarakstsiespēja galvenajā failā. Konfigurācijas opcijas, kurām nepieciešams DNS, ir, izmantojot USER @ HOSTpatternAtļaut lietotājiem vaiDenyUsers

-D

Kad šī opcija ir norādītasshd neatvienosies un nekļūs par dēmonu. Tas ļauj viegli uzraudzītsshd

-4

Spēkisshd izmantot tikai IPv4 adreses.

-6

Spēkisshd 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 uz komandrindas). 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. SkatītPermitUserEnvironment opcija 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 (Pubika autentifikācija) 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 ievieš minimālo RSA atslēgas moduļa lielumu protokolam 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 nepieciešams 8 bitu tīrs kanāls, neviens nedrīkst pieprasīt pty vai tas ir jānorādanav-pty Citāts var tikt iekļauts komandā, citējot to ar gruntsrānu. Šī 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. Apkārtējās vides apstrāde pēc noklusējuma ir atspējota un tiek kontrolēta arPermitUserEnvironment iespēja. Šī opcija tiek automātiski atspējota, jaUselogin ir iespējots.

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ā arkomandu iespēja.

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`` ssh -L '' ostas pāradresācija, lai tā varētu savienot tikai ar norādīto uzņēmēju un portu. IPv6 adreses var norādīt ar alternatīvu sintaksi: uzņēmēja / ostas Vairāki permitopen iespējas var tikt atdalītas ar komatiem. 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 [email protected]

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šajām rindiņām, ignorē kā komentārus.

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" draft-ietf-secsh-architecture-12.txt 2002. gada janvāris nepabeigts materiāls

M. Frīdels N. Provošs W. A. ​​Simpsons "Diffie-Hellman grupas apmaiņa par SSH transporta slāņa protokolu" draft-ietf-secsh-dh-group-exchange-02.txt 2002. gada janvāris nepabeigts materiāls

Svarīgs: Izmantojiet cilvēks komanda ( % cilvēks ), lai redzētu, kā komanda tiek izmantota jūsu konkrētajā datorā.