Linux / Unix käsk: sshd

Nimi

sshd - OpenSSH SSH deemon

Kokkuvõte

sshd [- deiqtD46 ] [- b bitid ] [- f config_file ] [- g login_grace_time ] [- h host_key_file ] [- k key_gen_time ] [- o valik ] [- p port ] [-

Kirjeldus

sshd (SSH Daemon) on sshi (1) deemoniprogramm. Koos need programmid asendavad rlogin ja rsh ja pakkige turvalist krüptitud sidet kahe ebausaldusväärse hosti vahel ebakindlale võrgule. Programmid on nii lihtne paigaldada ja kasutada kui võimalik.

sshd on deemon, mis kuulab klientide ühendusi. See algab tavaliselt alglaadimisel / etc / rc. See ühendab iga uue sisselogimisega uue deemoni. Vahustatud daemonid käsitlevad võtmevahetust, krüptimist, autentimist, käsu täitmist ja andmevahetust. See sshd rakendamine toetab nii SSH protokolli versioone 1 kui ka 2 samaaegselt.

SSH protokolli versioon 1

Igal peremehel on host-spetsiifiline RSA-võti (tavaliselt 1024 bitti), mida kasutatakse hosti tuvastamiseks. Kui daemon käivitub, genereerib see serveri RSA-klahvi (tavaliselt 768 bitti). See võti regenereeritakse tavaliselt iga tund, kui seda on kasutatud, ja seda ei salvestata kunagi kettale.

Iga kord, kui klient ühendab deemon, vastab selle avalik-õiguslikele hosti ja serveri võtmetele. Klient võrdleb RSA võõrustajat enda andmebaasiga, et kontrollida, kas see ei ole muutunud. Seejärel genereerib klient 256-bitine juhuslik number. See krüpteerib selle juhu numbri, kasutades nii võõr-võtme kui ka serveri võtme ja saadab krüptitud numbri serverile. Mõlemad pooled kasutavad seda juhuslikku numbrit seansimisklahvina, mida kasutatakse seansi kõigi edasiste teadete krüptimiseks. Ülejäänud seanss krüpteeritakse kasutades tavapäraseid šifreid, praegu Blowfishi või 3DES-i, kus vaikimisi kasutatakse 3DES-i. Klient valib krüpteerimisalgoritmi, mida kasutada serverist pakutavatelt krüpteerimisalgoritmilt .

Seejärel sisestage server ja klient autentimisdialoogi. Klient üritab end autentida, kasutades autentimist .rhosts, autentimist rassibles koos RSA hosti autentimisega, RSA väljakutse-vastuse autentimise või paroolipõhise autentimisega .

Rohti autentimine on tavaliselt keelatud, kuna see on põhimõtteliselt ebakindel, kuid soovi korral saab seda lubada ka serveri konfiguratsioonifailis. Süsteemi turvalisus pole paranenud, kui rshd rlogind ja rexecd pole blokeeritud (seega täielikult blokeerides rlogin ja rsh masinasse).

SSH protokolli versioon 2

Versioon 2 toimib sarnaselt: igal vastuvõtjal on hosti identifitseerimiseks kasutatud hostipõhine võti (RSA või DSA). Kuid kui daemon käivitub, ei genereeri see serveriklahvi. Edaspidine turvalisus toimub Diffie-Hellmani põhikokkuleppe kaudu. Selle peamise kokkuleppe tulemuseks on jagatud seansi võti.

Ülejäänud seanss krüpteeritakse kasutades sümmeetrilist šifri, praegu 128-bitine AES, Blowfish, 3DES, CAST128, Arcfour, 192-bitine AES või 256-bitine AES. Klient valib krüpteerimisalgoritmi, mida kasutada serverist pakutavatelt krüpteerimisalgoritmilt. Lisaks sellele antakse seansi terviklikkus krüptograafilise kirja autentimise koodi (hmac-sha1 või hmac-md5) kaudu.

Protokolli versioon 2 pakub avaliku võtme baasil kasutaja (PubkeyAuthentication) või kliendi host (HostbasedAuthentication) autentimismeetodit, tavalist parooli autentimist ja väljakutsete ja vastuste põhinevaid meetodeid.

Käskude täitmine ja andmete edastamine

Kui klient ennast ise autentiseerib, sisestatakse seansi ettevalmistamise dialoog. Sel hetkel võib klient nõuda asju nagu pseudotüübi määramine, X11-edastusühendused, TCP / IP-ühenduste edastamine või autentimisagendi ühenduse edastamine turvalise kanali kaudu.

Lõpuks küsib klient kas shellit või käsu täitmist. Seejärel sisestavad küljed seansirežiimi. Selles režiimis võivad mõlemad pooled andmeid igal ajal saata ja sellised andmed edastatakse serverisse ja kliendipoolse kasutaja terminali serverisse / koopialt või serverist.

Kui kasutajaprogramm lõpeb ja kõik edastatud X11 ja muud ühendused on suletud, saadab server kliendile käsu väljumise oleku ja mõlemad pooled väljuvad.

sshd saab konfigureerida käsurea võtmete või konfiguratsioonifaili abil. Käsurea võtmed ületavad konfiguratsioonifailis määratud väärtused.

sshd rereadib oma konfiguratsioonifaili, kui ta saab hangup signaali, SIGHUP , käivitades ise nime, mille see käivitati, näiteks / usr / sbin / sshd

Valikud on järgmised:

-b bitid

Määrab ephemeraalse protokolli versiooni 1 serveri võti bittide arvu (vaikimisi 768).

-d

Silumisrežiim. Server saadab sisselogimisprotsessi sisestatud silumisväljundi ja ei asu taustale. Samuti ei tööta server, vaid töötleb ainult ühte ühendust. See valik on mõeldud ainult serveri silumiseks. Mitu-d valikut suurendab silumismäära. Maksimaalne on 3.

-e

Kui see suvand on määratud, saadab sshd väljund standardlogi süsteemi logi asemel.

-f configuration_file

Määrab konfiguratsioonifaili nime. Vaikimisi on / etc / ssh / sshd_config sshd keeldub käivitamisest, kui konfiguratsioonifaili pole.

-g login_grace_time

Annab kliendile meeldetuletuse autentimiseks (vaikimisi 120 sekundit). Kui klient ei suuda selle mitme sekundi jooksul autentida, siis server katkestab ja väljub. Nulli väärtus ei näita piirangut.

-h host_key_file

Määrab faili, kust hosti võti loetakse. Seda võimalust tuleb anda juhul, kui sshd ei käivitu rootena (kuna tavapäraseid võtmefaile ei saa tavaliselt keegi, va root). Vaikimisi on protokolli versiooni 1 jaoks / etc / ssh / ssh_host_key ja protokolli versiooni 2 jaoks / etc / ssh / ssh_host_rsa_key ja / etc / ssh / ssh_host_dsa_key. Erinevate protokolli versioonide ja hostvõti jaoks on võimalik omada mitu võõrustavasid algoritmid.

-i

Määrab, et sshd käivitatakse inetdist. Sshd ei käivitu tavaliselt inetdist, sest see peab genereerima serveri võtme enne, kui see saab kliendile vastata, ja see võib võtta kümneid sekundeid. Kliendid peaksid ootama liiga kaua, kui võti taastatakse iga kord. Siiski võib väiketähtede suurused (nt 512), kasutades sshd-d alates inetdist, teostatav.

-k key_gen_time

Määrab, kui tihti taastatakse ephemeraalse protokolli versiooni 1 serveri võti (vaikimisi 3600 sekundit või üks tund). Võtme ümbersuunamise motivatsioon on üsna tihtipeale sellepärast, et võtit ei salvestata ükskõik kus, ja umbes tund aega muutub võimatuks võtme taastamine kinnipeetud side dekrüpteerimiseks isegi siis, kui masin on purunenud või füüsiliselt kinni püütud. Null näitab, et võti kunagi ei regenereerita.

-optsioon

Võib kasutada valikute esitamiseks konfiguratsioonifailis kasutatavas vormingus. See on kasulik nende võimaluste täpsustamiseks, mille jaoks eraldi käsurea lipp puudub.

-p port

Määrab porti, kuhu server kuulab ühendusi (vaikimisi 22). Mitmed pordivalikud on lubatud. Konfiguratsioonifailis määratud portsud ignoreeritakse, kui käsuriba porti on määratud.

-q

Vaikne režiim. Mingit ei saadeta süsteemi logisse. Tavaliselt logitakse iga ühenduse algust, autentimist ja lõpetamist.

-t

Testirežiim. Kontrollige ainult konfiguratsioonifaili kehtivust ja võtmete tervislikkust. See on kasulik sshd värskendamiseks usaldusväärselt, sest konfiguratsioonivõimalused võivad muutuda.

-u len

Seda võimalust kasutatakse utmp-i struktuuri väli suuruse määramiseks, mis hoiab kaughalli nime. Kui lahutatud hosti nimi on pikem kui len, kasutatakse selle asemel punktisustatud kümnendväärtust. See võimaldab hostidel väga pikaid hostinimesid, mis ületavad selle välja, et neid ikkagi üheselt identifitseerida. Täpsustamine - u0 näitab, et utmp-failis tuleb asetada ainult punktiirjetähised. - u0 kasutatakse ka selleks, et vältida sshd DNS-i päringute tegemisel, kui seda nõuab autentimismehhanism või konfiguratsioon. Autentimismehhanismid, mis võivad DNS-i nõuda, on RhostsAuthentication RhostsRSAAuthentication HostbasedAuthentication ja kasutades võtmefailis variant = = pattern-list . DNS-i nõudvad konfigureerimisvõimalused hõlmavad USER @ HOST-i mustri kasutamist AllowUsersis või DenyUsersis

-D

Kui see suvand on määratud, ei eemalda sshd ja see ei muutu deemoniks. See võimaldab hõlpsalt jälgida sshd-d

-4

Võimaldab sshd kasutada ainult IPv4 aadresse.

-6

Võimaldab sshd kasutada ainult IPv6 aadresse.

Konfiguratsioonifail

sshd loeb konfiguratsiooni andmeid / etc / ssh / sshd_configist (või failist - f käsureal määratud failiga). Failivormingut ja seadistusvõimalusi kirjeldatakse sshd_config5-s.

Sisselogimise protsess

Kui kasutaja logib sisse, käivitab sshd järgmist:

  1. Kui sisselogimine on tty-s ja ükski käsk pole määratud, prindib viimati sisselogimise aeg ja / etc / motd (kui konfiguratsioonifailis või $ HOME / .hushlogin ei leia jaotisest Sx FILES).
  2. Kui sisselogimine on tty-l, registreerib sisselogimise aeg.
  3. Kontrollib / etc / nologin, kui see on olemas, prindib sisu ja lõpetab (välja arvatud root).
  4. Muudatused tavaliste kasutajaõiguste kasutamisel.
  5. Seadistab põhikeskkonna.
  6. Loeb $ HOME / .ssh / keskkonda, kui see on olemas ja kasutajatel on lubatud oma keskkonda muuta. Vaata sshd_config5 valikut PermitUserEnvironment.
  7. Muudab kasutaja kodukataloogi.
  8. Kui $ HOME / .ssh / rc on olemas, jookseb see; muidu, kui / etc / ssh / sshrc olemas, jookseb; muidu käib xauth. `` Rc '' failidele antakse X11 autentimisprotokoll ja standardse sisendiga küpsis.
  9. Töötab kasutaja kest või käsk.

Authorized_Keys failivorming

$ HOME / .ssh / authorized_keys on vaikimisi fail, mis loetleb avalikud võtmed, mis on protokolli versioonis 1 RSA autentimise jaoks lubatud ja avaliku võtme autentimiseks (PubkeyAuthentication) protokolli versioonis 2. Alternatiivse faili määramiseks võib kasutada AuthorizedKeysFile .

Iga faili rida sisaldab ühte võtit (tühjad read ja read, mis algavad tähega "#", ignoreeritakse kui kommentaare). Iga RSA avalik võti koosneb järgmistest väljadest, mis on eraldatud tühikutega: valikud, bittid, eksponent, moodul, kommentaar. Iga protokolli versiooni 2 avalik võti koosneb järgmistest võimalustest: võtme tüüp, base64 kodeeritud võti, kommentaar. Valikute väli on valikuline; selle olemasolu sõltub sellest, kas liin algab numbriga või mitte (valiku väli ei algata kunagi numbriga). Bitide, eksponentide, moodulite ja kommentaaride väljad pakuvad protokolli versiooni 1 RSA klahvi; kommenteerimisvälja ei kasutata midagi (kuid võib olla kasutajale mugav märki identifitseerida). Protokolli 2. versiooni jaoks on võtmetüüpiks `` ssh-dss '' või `` ssh-rsa ''

Pange tähele, et selles failis olevad read on tavaliselt mitu sada baiti pikad (avaliku võtme kodeerimise suuruse tõttu). Te ei soovi neid sisestada; asemel kopeerige fail id.pub id_dsa.pub või id_rsa.pub ja muutke seda.

sshd juhib protokolli 1 ja protokolli 2 klahvide 768 bitti minimaalse RSA võti mooduli suurust.

Valikud (kui on olemas) koosnevad komadega eraldatud optsiooni spetsifikatsioonidest. Ühtegi tühikut pole lubatud, välja arvatud topeltjutumuste korral. Toetatakse järgmisi optsioonide spetsifikatsioone (pidage meeles, et märksõna valik pole tõstutundlik):

of = muster-list

Määrab, et lisaks avaliku võtme autentimisele peab ka kaugjuhtimispuldi kanooniline nimi olema komadega eraldatud mustrite loendis (`* 'ja`?' Peavad olema metamärgiks). Nimekiri võib sisaldada ka mustreid, mille eesliide on `! ' ; kui kanooniline hosti nimi vastab negatiivsele mustrile, ei võeta seda võtit. Selle võimaluse eesmärk on valikuliselt turvalisuse suurendamine: avaliku võtme autentimine iseenesest ei usalda võrgu- või nimeservereid ega midagi (kuid võtit); aga kui keegi keegi varastatakse võti, annab võti sissetungija sisse kõikjal maailmas. See lisavõimalus muudab varastatud võti keerulisemaks (nime serverite ja / või ruuterite puhul tuleb lisaks lihtsalt võti kahjustada).

command = käsk

Määrab, et käsk käivitatakse iga kord, kui seda võtme autentimiseks kasutatakse. Kasutaja poolt antud käsk (kui see on olemas) ignoreeritakse. Käsu käivitatakse pty-st, kui klient taotleb pty; vastasel korral käib ta ilma tty. Kui on nõutud 8-bitist puhast kanalit, ei tohi ükski küsida pty-d ega peaks määrama käsku no-pty, võib tsiteerida käsklusesse, tsiteerides seda tagasihelistusega. See valik võib osutuda kasulikuks teatud avalike võtmete piiramiseks konkreetse operatsiooni jaoks. Näiteks võib olla võti, mis lubab serveri varundamist, kuid mitte midagi muud. Pange tähele, et klient võib määrata TCP / IP ja / või X11 edastamise, kui need ei ole sõnaselgelt keelatud. Pange tähele, et see suvand kehtib shelli, käsu või alamsüsteemi täitmise kohta.

keskkond = NAME = väärtus

Määrab, et stringi sisestamisel tuleb see võti lisada keskkonnale. Sellisel viisil määratud keskkonnamuutujad muudavad muude vaikeväärtuste keskväärtused. Sellise tüübi mitu võimalust on lubatud. Keskkonna töötlemine on vaikimisi keelatud ja seda kontrollitakse valikul PermitUserEnvironment . See valik on automaatselt blokeeritud, kui UseLogin on lubatud.

no-port-edastamine

Keerutab TCP / IP edastamist, kui selle võtme autentimiseks kasutatakse. Kõik kliendi poolt edasisuunalised taotlused tagastavad vea. Seda võib kasutada näiteks käsuvaliku korral.

no-X11-edastamine

Keelab X11 edastamise, kui seda võtme autentimiseks kasutatakse. Kõigi X11-ide edasisaatmisteated tagavad vea.

no-agent-edastamine

Autentimisvahendi edasisaatmine keelatakse, kui autentimiseks seda võtme kasutatakse.

no-pty

Vigab tty eraldamist (petitsiooni eraldamise taotlus ebaõnnestub).

permitopen = host: port

Piirata kohalikku `shsh -L '' porti, mis edastatakse nii, et see võib ühenduda ainult määratud hosti ja porti. IPv6-aadresse saab määrata koos alternatiivse süntaksiga: host / port Mitu lubatavat optsiooni võib rakendada komadega eraldatult. Määratud masinanimedes ei tehta ühtegi mustrite vastavust, need peavad olema sõnasõnalised domeenid või aadressid.

Näited

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

alates = "*. 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 Failivorming

Failid / etc / ssh / ssh_known_hosts ja $ HOME / .ssh / known_hosts sisaldavad kõigi teadaolevate masinate hosti avalikke võtmeid. Ülemaailmne fail peaks olema administraatori poolt ettevalmistatud (valikuline) ja iga kasutaja fail säilitatakse automaatselt: iga kord, kui kasutaja ühendab tundmatu hostiga, lisatakse selle võti kasutaja-faili kohta.

Nendesse failidesse iga rida sisaldab järgmisi välju: hostinimed, bitid, eksponent, moodul, kommenteerimine. Põllud on eraldatud tühikutega.

Tugijaamade nimed on komadega eraldatud mustrite loend ('*' ja '?' Toimivad metamärgiks); iga muster omakorda sobib kanoonilise hosti nimega (kliendi autentimise korral) või kasutaja poolt antud nimega (serveri autentimise korral). Mustale võib eelneda ka `! ' viide negatiivsuse kohta: kui hostinimi vastab negatiivsele mustrile, siis seda ei aktsepteerita (sellel real) isegi siis, kui see vastab reale mõnele mustrile.

Bitid, eksponent ja moodul võetakse otse RSA võõrustamisvõti; neid on võimalik saada näiteks /etc/ssh/ssh_host_key.pub. Valikuline kommentaaride väli jätkub rea lõpuni ja seda ei kasutata.

Rida, mis algavad tähega "#" ja tühjad read, ignoreeritakse kui kommentaare.

Vastuvõtja autentimise korral aktsepteeritakse autentimine, kui mis tahes vastaval rida on õige võtmega. Seega on lubatav (kuid mitte soovitatav) sama nimega mitu rida või erinevad võtmevõtmed. See juhtub paratamatult, kui failidesse pannakse erinevatest domeenidest pärit hosti nimede lühikesed vormid. Võimalik, et failid sisaldavad vastuolulist infot; autentimine on lubatud, kui kehtivat teavet saab mõnest failist leida.

Pange tähele, et nendes failides olevad read on tavaliselt sadu tähemärki pikk ja kindlasti ei taha käivita võtme võtmeid. Pigem genereerige need skripti kasutades või võtke /etc/ssh/ssh_host_key.pub ja lisades hosti nimed esiküljel.

Näited

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

Vaata ka

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

T. Ylonen T. Kivinen M. Saarinen T. Rinne S. Lehtinen "SSH protokolli arhitektuur" draft-ietf-secsh-architecture-12.txt jaanuar 2002 käimasolev materjal

M. Friedl N. Provos WA Simpson "Diffie-Hellmani grupi vahetamine SSH transpordilaadi protokolli jaoks" draft-ietf-secsh-dh-group-exchange-02.txt jaanuar 2002 käimasolev materjal

Tähtis: kasutage käsuga man ( % man ), et näha, kuidas käsku kasutatakse teie konkreetsel arvutis.