Skip to main content

Sve o Linux / Unix naredbi: sshd

How to Reboot a Server Over SSH (Lipanj 2025)

How to Reboot a Server Over SSH (Lipanj 2025)
Anonim

Ime

sshd - OpenSSH SSH daemon

Sinopsis

sshd -deiqtD46 -b komadići -f config_file -g login_grace_time -h host_key_file -k key_gen_time -o opcija -p luka -u Len

Opis

sshd (SSH Daemon) je program demona za ssh (1). Zajedno su ti programi zamijenjeni rlogin i rsh, te osigurati sigurna šifrirana komunikacija između dva nepouzdana računala na nesigurnoj mreži. Programi trebaju biti jednostavni za instalaciju i korištenje što je više moguće.

sshd je daemon koji sluša veze s klijentima. Obično se pokreće pri podizanju sustava / etc / rc Za svaku dolaznu vezu traži novi demon. Fokusirani demoni obrađuju ključne razmjene, šifriranje, provjeru autentičnosti, izvršavanje naredbi i razmjenu podataka. Ova implementacijasshd istodobno podržava i SSH protokol verzije 1 i 2.

SSH verzija protokola 1

Svaki domaćin ima RSA ključ specifičan za domaćin (obično 1024 bita) koji se koristi za identifikaciju domaćina. Osim toga, kada se demon kreće, generira poslužiteljski RSA ključ (obično 768 bita). Ovaj ključ normalno se regenerira svakih sat vremena ako se koristi, i nikada se ne pohranjuje na disku.

Kad god klijent spaja daemon odgovara svojim javnim poslužiteljima i poslužiteljskim ključevima. Klijent uspoređuje RSA ključ glavnog računala s vlastitom bazom podataka kako bi provjerio nije li se promijenio. Klijent zatim stvara 256-bitni slučajni broj. Šifrira taj slučajni broj koristeći i ključ glavnog računala i ključ poslužitelja i šalje šifrirani broj poslužitelju. Obje strane zatim koriste ovaj slučajan broj kao ključ sesije koji se koristi za šifriranje svih daljnjih komunikacija u sesiji. Ostatak sesije šifriran je pomoću konvencionalnog šifriranja, trenutno Blowfish ili 3DES, s kojim se standardno koristi 3DES. Klijent odabire algoritam šifriranja za korištenje od onih koje nudi poslužitelj.

Zatim, poslužitelj i klijent unesite dijalog za provjeru autentičnosti. Klijent se pokušava autentificirati pomoću autentifikacije .hosts, .hosts autentifikacije u kombinaciji s autentifikacijom RSA autentičnosti, autentifikacijom RSA autentifikacijom izazovom ili autentifikacijom zaporke.

Autentifikacija Rhosts inače je onemogućena jer je u osnovi nesigurna, no može se omogućiti u konfiguracijskoj datoteci poslužitelja ako to želi. Sigurnost sustava nije poboljšana, osim akorshdrlogind i rexecd su onemogućeni (time potpuno onemogućavaju rlogin i rsh u stroj).

Verzija verzije SSH protokola 2

Verzija 2 radi slično: Svaki domaćin ima ključ za specifičnost domaćina (RSA ili DSA) koji se koristi za prepoznavanje domaćina. Međutim, kada daemon započne, ne generira ključ poslužitelja. Prosljeđivanje sigurnosti osigurava se putem ključnog ugovora Diffie-Hellman. Ovaj ključni sporazum rezultira dijeljenim ključem sesije.

Ostatak sesije šifriran je pomoću simetričnog šifriranja, trenutno 128-bitnog AES, Blowfish, 3DES, CAST128, Arcfour, 192-bitnog AES-a ili 256-bitnog AES-a. Klijent odabire algoritam šifriranja za korištenje od onih koje nudi poslužitelj. Dodatno, integritet sesije osigurava se kodom za autentifikaciju kriptografskih poruka (hmac-sha1 ili hmac-md5).

Protokol verzije 2 osigurava metode provjere autentičnosti na temelju javnog ključa (PubkeyAuthentication) ili klijentskog domaćina (HostbasedAuthentication), konvencionalne autentifikacije lozinke i metode temeljene na izazovnim odgovorima.

Izvršenje naredbi i prosljeđivanje podataka

Ako se klijent uspješno autentificira, unosi se dijaloški okvir za pripremu sesije. U ovom trenutku klijent može zatražiti stvari kao što je dodjeljivanje pseudo-tty, prosljeđivanje X11 veza, prosljeđivanje TCP / IP veza ili prosljeđivanje veze autentičnosti preko sigurnog kanala.

Konačno, klijent zahtijeva shell ili izvršenje naredbe. Strane zatim ulaze u način rada sesija. U ovom načinu rada, svaka strana može slati podatke u bilo kojem trenutku, a takvi se podaci prosljeđuju na / iz ljuske ili naredbe na strani poslužitelja i korisnički terminal na strani klijenta.

Kada korisnički program završi i svi proslijeđeni X11 i ostali priključci su zatvoreni, poslužitelj šalje status naredbe izlazu klijentu i obje strane izađu.

sshd može se konfigurirati pomoću opcija naredbenog retka ili konfiguracijske datoteke. Opcije naredbene linije nadjačavaju vrijednosti specificirane u konfiguracijskoj datoteci.

sshd ponovno pročita konfiguracijsku datoteku kada primi signal hangup,SIGHUP izvršavajući se s imenom koje je pokrenuto kao, / usr / sbin / sshd

Opcije su sljedeće:

-b komadići

Određuje broj bitova u ključu poslužitelja verzije proturječne verzije 1 (zadano 768).

-D

Način otklanjanja pogrešaka. Poslužitelj šalje verbalno izlazne pogreške u zapisnik sustava i ne stavlja se u pozadinu. Poslužitelj također neće raditi i obradit će samo jednu vezu. Ova je opcija namijenjena samo za uklanjanje pogrešaka za poslužitelja. Višestruke opcije -d povećavaju razinu ispravljanja pogrešaka. Maksimalna je 3.

-e

Kada je navedena opcija,sshd će poslati izlaz na standardnu ​​pogrešku umjesto log sustava.

f configuration_file

Određuje naziv konfiguracijske datoteke. Zadana postavka je / etc / ssh / sshd_configsshdodbija započeti ako nema konfiguracijske datoteke.

-g login_grace_time

Dati vremena za klijente da autentičnu autentičnost (zadana 120 sekundi). Ako klijent ne uspije autentificirati korisnika u roku od nekoliko sekundi, poslužitelj se odspoji i izlazi.Vrijednost nula ne pokazuje nikakvu granicu.

-h host_key_file

Određuje datoteku iz koje se čita ključ domaćina. Ova opcija mora biti dana akosshd nije pokrenut kao root (jer normalne datoteke ključa domaćina obično ne mogu čitati nitko osim roota). Zadana postavka je / etc / ssh / ssh_host_key za verziju protokola 1 i / etc / ssh / ssh_host_rsa_key i / etc / ssh / ssh_host_dsa_key za verziju protokola 2. Moguće je imati više datoteka ključa domaćina za različite verzije protokola i ključ glavnog računala algoritmi.

-i

Određuje tosshd se izvodi iz inetd.sshd normalno se ne izvodi iz inetd jer treba generirati ključ poslužitelja prije nego što može odgovoriti klijentu, a to može potrajati desetke sekundi. Klijenti bi trebali predugo čekati ako se ključ svaki put obnavlja. Međutim, s malim veličinama ključa (npr. 512) pomoćusshd od inetd može biti izvedivo.

-k key_gen_time

Određuje koliko se često regenerira ključ poslužitelja verzije 1 protustavke (zadana vrijednost 3600 sekundi ili sat). Motivacija za regeneraciju ključa prilično često je da se ključ ne pohranjuje nigdje, a nakon otprilike sat vremena postaje nemoguće vratiti ključ za dešifriranje prisluškivane komunikacije čak i ako je stroj napuknut ili fizički zaplijenjen. Vrijednost nula označava da ključ nikada neće biti obnovljen.

-o opcija

Može se koristiti za davanje opcija u formatu koji se koristi u konfiguracijskoj datoteci. To je korisno za određivanje opcija za koje nema posebne zastavice naredbenog retka.

-p luka

Određuje priključak na kojem poslužitelj sluša veze (zadano 22). Dopuštene su mogućnosti višestrukih ulaza. Portovi navedeni u datoteci konfiguracije zanemaruju se kada je naveden port naredbenog retka.

Q

Tihi način rada. Ništa se ne šalje u zapisnik sustava. Obično se zapisuju početak, provjeru autentičnosti i prestanak svake veze.

-t

Način testiranja. Provjerite valjanost konfiguracijske datoteke i razumnost tipki. Ovo je korisno za ažuriranjesshd pouzdano se mogu mijenjati opcije konfiguracije.

-u Len

Ova se opcija koristi za određivanje veličine polja uutmp struktura koja sadrži daljinski naziv računala. Ako je riješeni naziv računala duži od Len Umjesto toga upotrijebit će se točkasta decimalna vrijednost. To omogućuje domaćinima s vrlo dugim nazivima domaćina koji prelijevaju ovo polje da budu jedinstveno identificirani. Određivanje -u0 označava da se samo utorne decimalne adrese stavljaju u utmp datoteku. -u0 također se koristi za sprečavanjesshd od izvođenja zahtjeva DNS, osim ako to ne zahtijeva mehanizam ili konfiguracija za provjeru autentičnosti. Mehanizmi za provjeru autentičnosti koji mogu zahtijevati DNS uključujuRhostsAuthenticationRhostsRSAAuthentication HostbasedAuthentication i pomoću as = uzorak-listeopciju u ključnoj datoteci. Opcije konfiguracije koje zahtijevaju DNS uključuju korištenje USER @ HOSTpattern u sustavuAllowUsers iliDenyUsers

-D

Kada je navedena opcijasshd neće se odvojiti i neće postati demon. To omogućuje jednostavno praćenjesshd

-4

snagasshd koristiti samo IPv4 adrese.

-6

snagasshd koristiti samo IPv6 adrese.

Konfiguracijska datoteka

sshd čita konfiguracijske podatke iz / etc / ssh / sshd_config (ili datoteku specificiranom s -f na naredbenom retku). Format datoteke i opcije konfiguracije opisane su u sshd_config5.

Proces prijave

Kada se korisnik uspješno prijavljuje,sshd radi sljedeće:

  1. Ako je prijava na tty, a nijedna naredba nije specificirana, ispisuje zadnju vremenu prijave i / etc / motd (osim ako nije spriječeno u konfiguracijskoj datoteci ili $ HOME / .hushlogin pogledajte odjeljak SX FILES).
  2. Ako je prijava na tty, vrijeme prijavljivanja zapisa.
  3. Provjerava / etc / nologin ako postoji, ispisuje sadržaj i zatvara (osim root).
  4. Promjene se pokreću s normalnim korisničkim ovlastima.
  5. Postavlja osnovno okruženje.
  6. Čita $ HOME / .ssh / okoliš ako postoji i korisnicima je dopušteno mijenjanje okruženja. PogledajtePermitUserEnvironment opciju u sshd_config5.
  7. Promjene u korisničkom kućnom imeniku.
  8. Ako postoji $ HOME / .ssh / rc, pokreće ga; drugo ako / etc / ssh / sshrc postoji, pokreće ga; inače radi xauth. `` Rc '' datoteke imaju protokol X11 autentifikacije i kolačić u standardnom unosu.
  9. Pokreće korisničku ljusku ili naredbu.

Format datoteke ovlaštenih_koji

$ HOME / .ssh / authorized_keys zadana je datoteka koja navodi javne ključeve koji su dopušteni za RSA autentifikaciju u verziji protokola 1 i za autentifikaciju javnog ključa (PubkeyAuthentication) u protokolskoj verziji 2.AuthorizedKeysFile mogu se koristiti za određivanje alternativne datoteke.

Svaka linija datoteke sadrži jedan ključ (prazne crte i retke s oznakom "#" zanemaruju se kao komentari). Svaki RSA javni ključ sastoji se od sljedećih polja, odvojeni razmakom: opcije, bitovi, eksponent, modul, komentar. Svaki javni ključ verzije protokola 2 sastoji se od: opcija, ključeva, ključa kodiranog u bazu 64, komentara. Polje opcija nije obavezno; njegova prisutnost određuje se hoće li linija započeti s brojem ili ne (polje opcija nikad ne počinje s brojem). Polja bitova, eksponenata, modula i polja komentara daju RSA ključ za verziju protokola 1; polje komentara se ne koristi za bilo što (ali korisnicima može biti pogodan za prepoznavanje ključa). Za verziju protokola 2 tipka je `` ssh-dss '' ili `` ssh-rsa ''

Napominjemo da redci u ovoj datoteci obično traju nekoliko stotina bajtova (zbog veličine kodiranja javnog ključa). Ne želite ih upisati; Umjesto toga, kopirajte identitet.pub id_dsa.pub ili datoteku id_rsa.pub i uredite ga.

sshd provodi minimalnu veličinu modula ključa RSA za protokole 1 i tipke protokola 2 768 bita.

Opcije (ako postoje) sastoje se od specifikacija opcija razdvojenih zarezom. Nema dopuštenih razmaka, osim u dvostrukim navodnicima. Podržane su sljedeće specifikacije opcija (imajte na umu da ključne riječi opcija nisu osjetljive na veličinu slova):

s = uzorak-liste

Određuje da uz vjerodostojnost javnog ključa kanonski naziv daljinskog računala mora biti prisutan u popisu uzoraka odijeljen zarezima ("*" i "?" Služe kao zamjenski znakovi). Popis također može sadržavati obrasce koji su negirali prefiksajući ih s "!" ; ako kanonski naziv domaćin odgovara negiranom uzorku, ključ nije prihvaćen. Svrha ove opcije je opcionalno povećanje sigurnosti: autentikacija javnog ključa sama po sebi ne pouzdaju se u mrežu ili poslužitelje imena ili bilo što (ali ključ); međutim, ako netko nekako ukrade ključ, ključ dopušta uljezu da se prijavljuje s bilo kojeg mjesta na svijetu. Ova dodatna opcija otežava upotrebu ukradenog ključa (imena poslužitelja i / ili usmjerivači trebaju biti ugrožena osim samo ključem).

Naredba = naredba

Određuje da se naredba izvodi svaki put kada se taj ključ koristi za provjeru autentičnosti. Naredba koju dobije korisnik (ako postoji) je zanemarena. Naredba se izvodi na pty ako klijent zatraži pty; inače se izvodi bez tty. Ako je potrebno 8-bitni čisti kanal, ne smije se zatražiti pty ili trebate odreditibez PTY Citat može biti uključen u naredbu citirajući ga unatrag. Ova bi opcija mogla biti korisna za ograničavanje određenih javnih ključeva za izvršavanje određene operacije. Primjer bi mogao biti ključ koji omogućuje udaljenu sigurnosnu kopiju, ali ništa drugo. Imajte na umu da klijent može odrediti TCP / IP i / ili X11 prosljeđivanje osim ako su izričito zabranjeni. Imajte na umu da se ova opcija odnosi na izvršavanje ljuske, naredbe ili podsustava.

okolina = NAME = vrijednost

Određuje da se niz koji se dodaje u okoliš pri prijavi pomoću ove tipke. Varijable okruženja postavljene na ovaj način nadjačavaju druge zadane vrijednosti okruženja. Dopuštene su različite opcije ove vrste. Obrada okoliša je onemogućena prema zadanim postavkama i kontrolirana je putemPermitUserEnvironment opcija. Ova opcija automatski se onemogućuje akoUseLogin je omogućen.

bez luka prosljeđivanje

Zabranjuje prosljeđivanje TCP / IP kada se taj ključ koristi za provjeru autentičnosti. Bilo koji zahtjev klijenta za naplatu prema naprijed vratit će pogrešku. To se može koristiti, npr., U vezi snaredba opcija.

ne-X11-prosljeđivanje

Zabranjuje prosljeđivanje X11 kada se taj ključ koristi za provjeru autentičnosti. Svaka X11 zahtjev za naprijed od strane klijenta vratit će pogrešku.

ne-agent-prosljeđivanje

Zabranjuje prosljeđivanje agenata za provjeru autentičnosti kada se taj ključ koristi za provjeru autentičnosti.

bez PTY

Sprječava tty dodjelu (zahtjev za dodjeljivanje pty neće uspjeti).

permitopen = Domaćin: luka

Ograniči lokalno`` ssh-L '' port prosljeđivanje tako da se može povezati samo s navedenim domaćinom i priključkom. IPv6 adrese se mogu navesti alternativnom sintaksom: domaćin / luka višekratnik permitopen opcije mogu biti primijenjene odvojene zarezima. Nijedan podudaranje uzorka nije izveden na navedenim nazivima računala, već moraju biti doslovne domene ili adrese.

Primjeri

1024 33 12121 … 312314325 [email protected]

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

command = "dump / home", bez 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 format datoteke

Datoteke / etc / ssh / ssh_known_hosts i $ HOME / .ssh / known_hosts sadrže javne ključeve domaćina za sve poznate hostove. Globalnu datoteku treba pripremiti administrator (opcionalno), a datoteka po korisniku automatski se održava: svaki put kad se korisnik poveže s nepoznatim hostom, njegov ključ dodaje se u datoteku po korisniku.

Svaki redak u tim datotekama sadrži sljedeća polja: nazivi hosta, bitovi, eksponent, modul, komentar. Polja su odvojena razmakom.

Nazivi računala su popis uzoraka odvojenih zarezima ('*' i '?' Djeluju kao zamjenski znakovi); svaki se obrazac, zauzvrat, podudara s kanonskim nazivom glavnog računala (prilikom autentifikacije klijenta) ili s korisničkim imenom (prilikom autentifikacije poslužitelja). Predmet može također prethoditi "!" za označavanje negacije: ako naziv domaćin odgovara negiranom obrascu, ona se ne prihvaća (po tom retku) čak i ako se podudara s drugim uzorkom na retku.

Bitovi, eksponent i modul se uzimaju izravno iz RSA ključa domaćina; oni se mogu dobiti, npr., iz /etc/ssh/ssh_host_key.pub Dodatni polje komentara nastavlja se do kraja retka i ne koristi se.

Redci koji počinju s "#" i praznih redaka zanemaruju se kao komentari.

Pri provjeri autentičnosti domaćina, provjera autentičnosti prihvaćena je ako odgovarajuća crta ima odgovarajući ključ. Stoga je dopušteno (ali ne preporučljivo) imati nekoliko redaka ili različitih ključeva domaćina za ista imena. To se neizbježno događa kada se u datoteku prenesu kratki oblici naziva domaćina iz različitih domena. Moguće je da datoteke sadrže proturječne informacije; autentifikacija se prihvaća ako valjani podaci mogu biti pronađeni iz bilo koje datoteke.

Imajte na umu da linije u tim datotekama obično traju stotine znakova, a vi definitivno ne želite tipkati tipke domaćina ručno. Umjesto toga, generirati ih skriptom ili uzimanjem /etc/ssh/ssh_host_key.pub i dodavanjem naziva hosta ispred.

Primjeri

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

Vidi također

ssh-1, ssh-agent1, ssh-keygen1, login.conf5, moduli (5), sshd_config5, sftp-server8

T. Ylonen T. Kivinen M. Saarinen T. Rinne S. Lehtinen "Arhitektura protokola SSH" nacrt-ietf-secsh-architecture-12.txt Siječanj 2002 materijal u tijeku

M. Friedl N. Provos W.A. Simpson "Razmjena Diffie-Hellman grupe za protokol SSH Transport Layer" nacrt-ietf-secsh-dh-group-exchange-02.txt siječanj 2002. materijal u tijeku

Važno: Koristiti čovjek naredba ( % čovjek ) kako biste vidjeli kako se naredba koristi na vašem računalu.