Linukso / Unikso Komando: sshd

Nomo

sshd - OpenSSH SSH-demono

Sinopsis

sshd [- deiqtD46 ] [- b bitoj ] [- f config_file ] [- g login_grace_time ] [- h host_key_file ] [- k key_gen_time ] [- o opcio ] [- puerto ] [- u ]

Priskribo

sshd (SSH Daemon) estas la demono-programo por ssh (1). Kune ĉi tiuj programoj anstataŭas rlogin kaj rsh , kaj provizu sekurajn koditajn komunikadojn inter du nefidindaj gastigantoj per neplena reto. La programoj intencas esti tiel facile instali kaj uzi kiel eble.

Sshd estas la demono, kiu aŭskultas rilatojn de klientoj. Ĝi kutime komencas ĉe ekkuro de / etc / rc Ĝi petas novan demonon por ĉiu venonta ligo. La forkitaj demonoj manipulas ŝlosilon, ĉifradon, aŭtentikigon, komandan ekzekuton kaj interŝanĝon de datumoj. Ĉi tiu efektivigo de sshd subtenas ambaŭ SSH-protokolon 1 kaj 2 samtempe.

Protokolo SSH Versio 1

Ĉiu gastiganto havas gastigan RSA-ŝlosilon (kutime 1024 bitojn) uzata por identigi la gastiganton. Aldone, kiam la demono komenciĝas, ĝi generas servilon RSA-ŝlosilo (kutime 768 bitoj). Ĉi tiu ŝlosilo kutime regeneras ĉiun horon se ĝi estas uzata, kaj neniam konserviĝas en disko.

Ĉiufoje, kiam kliento kunligas la demonon, respondas kun ĝia publika gastiganto kaj serviloklosiloj. La kliento komparas la RSA-gastigan ŝlosilon kontraŭ sia propra datumbazo por kontroli, ke ĝi ne ŝanĝis. La kliento tiam generas 256-bit hazarda nombro. Ĝi kodas ĉi tiun hazardan numeron uzante la gastigantan ŝlosilon kaj la servilon kaj sendas la koditan numeron al la servilo. Ambaŭ flankoj tiam uzas ĉi tiun hazardan numeron kiel kunservo, kiu estas uzata por kodi ĉiujn pliajn komunikojn en la kunsido. La resto de la kunsido estas ĉifrita per konvencia cifrado, nuntempe Blowfish aŭ 3DES, kun 3DES uzata defaŭlte. La kliento elektas la ĉifradan algoritmon por uzi de tiuj, kiujn proponas la servilo.

Poste, la servilo kaj la kliento eniras aŭtentikan dialogon. La kliento provas aŭtentigi sin per uzado de aŭtomataj vortoj, aŭtoj, aŭtomataj identigoj, kombinitaj kun RSA-gastiga aŭtentigo, RSA-defila responda aŭtentigo aŭ pasvorto-bazita aŭtentigo .

Rhosts-aŭtentikeco estas kutime malŝaltita ĉar ĝi estas esence necerta, sed povas esti ebligita en la agorda dosiero se ĝi deziras. La sekureco de la sistemo ne plibonigas krom se rshd rlogind kaj rexecd estas malŝaltitaj (tute malŝalti rlogin kaj rsh en la maŝinon).

Protokolo SSH Versio 2

Versio 2 funkcias simile: Ĉiu gastiganto havas gastigatan ŝlosilon (RSA aŭ DSA) uzita por identigi la gastiganton. Tamen, kiam la demono komenciĝas, ĝi ne generas servilon-ŝlosilo. Antaŭa sekureco estas provizita per interkonsento de Diffie-Hellman-ŝlosilo. Ĉi tiu ŝlosila interkonsento rezultas en kunserva ŝlosilo.

La resto de la kunsido estas ĉifrita per simetria cifrado, nuntempe 128 bitoj AES, Blowfish, 3DES, CAST128, Arcfour, 192 bit AES, aŭ 256 bit AES. La kliento elektas la ĉifradan algoritmon por uzi de tiuj, kiujn proponas la servilo. Aldone, sesia integreco estas provizita per kripta mesaĝo-aŭtentokodo (hmac-sha1 aŭ hmac-md5).

Protokolo-versio 2 provizas publikan ŝlosilon bazitan uzanton (PubkeyAuthentication) aŭ klienta gastigilo (HostbasedAuthentication) aŭtentododo, konvencia pasvorta aŭtentigo, kaj defio-respondaj bazitaj metodoj.

Komandaj Ekzekutoj kaj Datumoj Antaŭeniganta

Se la kliento sukcese aŭtentigas, dialogo por prepari la kunsidon estas enirita. Je ĉi tiu tempo la kliento povas peti aferojn kiel aldono de pseudo-tty, antaŭenigi X11-rilatojn, antaŭenigi TCP / IP-rilatojn, aŭ antaŭenigi la aŭtentikan agenton-rilaton super la sekura kanalo.

Fine, la kliento ankaŭ petas ŝelon aŭ ekzekuton de komando. La flankoj tiam eniras kunsia reĝimo. En ĉi tiu maniero, ambaŭflanke povas sendi datumojn en ajna momento, kaj tiaj datumoj estas senditaj al / el la ŝelo aŭ komando sur la servilo, kaj la uzanto-stacio ĉe la kliento.

Kiam la programo de uzanto finiĝas kaj ĉiuj antaŭenigitaj X11 kaj aliaj ligiloj estas fermitaj, la servilo sendas ordon-eliron al la kliento kaj ambaŭ flankoj foriras.

sshd povas esti agordita per komandlinioj aŭ agordo. Komandliniaj opcioj anstataŭigas valorojn specifitajn en la agorda dosiero.

sshd redonas sian agordon-dosieron kiam ĝi ricevas pendantan signalon, SIGHUP per ekzekutado per la nomo, kiel ĝi komencis, tio estas, / usr / sbin / sshd

La elektoj estas kiel sekvas:

-b- bitoj

Specifas la nombron de bitoj en la efemera protokolo versio 1-servilo-ŝlosilo (defaŭlta 768).

-d

Debug-reĝimo. La servilo sendas verŝajn elpuŝan eliron al la protokolo kaj ne metas sin en la fono. La servilo ankaŭ ne funkcios kaj nur procesos unu konekton. Ĉi tiu opcio nur celis por elpurigi la servilon. Multoblaj -d-opcioj pliigas la elpurigan nivelon. Maksimumo estas 3.

-e

Kiam ĉi tiu opcio estas precizigita, sshd sendos la eliron al la norma eraro anstataŭ la sistemo-protokolo.

-f- agordo_file

Specifas la nomon de la agorda dosiero. La defaŭlta estas / etc / ssh / sshd_config sshd rifuzas komenci se ne ekzistas agorda dosiero.

-g login_grace_time

Donas la gracia tempo por klientoj aŭtentigi sin (defaŭlta 120 sekundoj). Se la kliento malsukcesas aŭtentigi la uzanton ene de ĉi tiu multaj sekundoj, la servilo malkonektas kaj eliras. Valoro de nulo indikas neniun limon.

-h host_key_file

Specifas dosieron el kiu legado-ŝlosilo estas legata. Ĉi tiu opcio devas esti donita se sshd ne funkcias kiel radiko (ĉar normalaj gastigaj dosieroj estas kutime ne legeblaj de iu ajn krom radiko). La defaŭlto estas / etc / ssh / ssh_host_key por protokolo versio 1, kaj / etc / ssh / ssh_host_rsa_key kaj / etc / ssh / ssh_host_dsa_key por protokolo versio 2. Eblas havi plurajn gastigajn ŝlosilojn por la malsamaj protokolaj versioj kaj gastiga ŝlosilo algoritmoj.

-i

Specifas, ke sshd estas kurita de inetd. sshd kutime ne kuras de inetd ĉar ĝi bezonas generi la servilon-ŝlosilon antaŭ ol ĝi povas respondi al la kliento, kaj tio povas preni dekojn da sekundoj. Klientoj devus atendi tro longe se la ŝlosilo estis regenerata ĉiufoje. Tamen, kun malgrandaj ŝlosilaj grandecoj (ekz. 512) uzante sshd de inetd povas esti farebla.

-k key_gen_time

Specifas kiom ofte la efemera ŝlosilo-servilo-ŝlosilo de la protokolo 1 regeneras (defaŭlta 3600 sekundoj aŭ unu horo). La instigo por regenerado de la ŝlosilo estas ofte ke la ŝlosilo ne estas stokita ie ajn, kaj post proksimume horo, ĝi fariĝas neeble rekuperi la ŝlosilon por malkifri interkaptitajn konektojn eĉ se la maŝino estas fendita aŭ fizike kaptita. Valoro de nulo indikas, ke la ŝlosilo neniam regenerados.

-o opcio

Povas esti uzata por doni eblojn en la formato uzita en la agorda dosiero. Ĉi tio estas utila por specifi opciojn, por kiuj ne ekzistas aparta komandlinio.

-p haveno

Specifas la havenon, sur kiu la servilo aŭskultas ligojn (defaŭlta 22). Multoblaj havenaj opcioj estas permesataj. Havenoj specifitaj en la agorda dosiero ignoriĝas kiam komandlinia haveno estas specifita.

-q

Malfacila maniero. Nenio estas sendita al la sistemo-protokolo. Kutime la komenco, aŭtentikigo kaj finiĝo de ĉiu konekto estas ensalutintaj.

-t

Testo-modo. Nur kontrolu la validecon de la agorda dosiero kaj la prudenteco de la klavoj. Ĉi tio utilas por ĝisdatigi sshd fidinde kiel agordaj opcioj povas ŝanĝi.

-u len

Ĉi tiu opcio estas uzata por specifi la grandecon de la kampo en la utmp- strukturo, kiu tenas la distan gastigantan nomon. Se la solvita gastiga nomo estas pli longa ol len, la kvadrata kvadrata valoro estos uzata anstataŭe. Ĉi tio permesas gastigantojn kun tre longaj gastigaj nomoj, kiuj superfluas ĉi tiun kampon, por ankoraŭ esti identigitaj. Specifante - u0 indikas, ke nur punktitaj decimalaj adresoj devus esti enmetitaj al la dosiero. - u0 ankaŭ estas uzita por malhelpi sshd fari DNS-petojn krom se la aŭtentika mekanismo aŭ agordo postulas ĝin. Aŭtentigaj mekanismoj, kiuj povas postuli DNS inkluzivi RhostsAuthentication Rhosts RSAAuthentication HostbasedAuthentication kaj uzanta de = ŝablono-listo opcio en ŝlosila dosiero. Agordaj opcioj, kiuj postulas DNS, inkluzivas uzanton de USER @ HOST-ŝablono en AllowUsersDenyUsers

-D

Kiam ĉi tiu opcio estas precizigita, sshd ne malplenigos kaj ne fariĝos demono. Ĉi tio permesas facila viglado de sshd

-4

Fortoj uzas nur IPv4-adresojn.

-6

Fortoj uzas nur IPv6-adresojn.

Agordo-dosiero

sshd legas agordajn datumojn de / etc / ssh / sshd_config (aŭ la dosiero specifita kun - f sur la komandlinio). La dosieraj formatoj kaj agordaj opcioj estas priskribitaj en sshd_config5.

Ensaluta procezo

Kiam uzanto sukcese ensalutas, sshd faras la jenajn:

  1. Se la ensaluto estas en tty, kaj neniu komando estis difinita, presas lastan ensalutan tempon kaj / etc / motd (krom se ĝi neebligas la agordon aŭ $ HOME / .hushlogin vidu la sekcion Sx FILES).
  2. Se la ensaluto estas sur tty, registras ensalutan tempon.
  3. Kontrolu / ktp / nologin se ĝi ekzistas, presas enhavojn kaj ellasas (krom se radiko).
  4. Ŝanĝoj por kuri kun normalaj uzantoj.
  5. Agordas bazan medion.
  6. Ĝi legas $ HOME / .ssh / environment se ĝi ekzistas kaj la uzantoj rajtas ŝanĝi sian medion. Vidu la permesilon PermitUserEnvironment en sshd_config5.
  7. Ŝanĝoj al la hejma dosierujo de la uzanto.
  8. Se $ HOME / .ssh / rc ekzistas, kuras ĝin; cetere se ekzistas / etc / ssh / sshrc, kuras ĝin; alie kuras xauth. La `` rc '' dosieroj estas donita la X11-aŭtentika protokolo kaj kuketo en norma enigo.
  9. Kuras konzolon aŭ komandon de uzanto.

Aŭtomata_Kosieroj Dosiero-Formato

$ HOME / .ssh / authorized_keys estas la defaŭlta dosiero, kiu listigas la publikajn ŝlosilojn, kiuj rajtas por RSA-aŭtentigo en protokolo-versio 1 kaj por publika ŝlosila aŭtentigo (PubkeyAuthentication) en protokola versio 2. AuthorizedKeysFile povas esti uzata por specifi alternativan dosieron.

Ĉiu linio de la dosiero enhavas unu ŝlosilon (malplenaj linioj kaj linioj komencantaj per `# 'estas ignoritaj kiel komentoj). Ĉiu RSA-publika ŝlosilo konsistas el la sekvaj kampoj, apartigitaj de spacoj: ebloj, bitoj, eksponentoj, moduloj, komentoj. Ĉiu protokolo versio 2 publika ŝlosilo konsistas el: ebloj, keytype, base64 kodita ŝlosilo, komentu. La elekta kampo estas laŭvola; ĝia ĉeesto estas determinita de ĉu la linio komenciĝas per nombro aŭ ne (la opcioj-kampo neniam komenciĝas per numero). La bitoj, eksponentoj, moduloj kaj komercaj kampoj donas la RSA-ŝlosilon por protokolo versio 1; la komenta kampo ne estas uzata por io ajn (sed povas esti oportuna por la uzanto identigi la ŝlosilon). Por protokolo versio 2 la ŝlosilo estas `` ssh-dss '' aŭ `` ssh-rsa ''

Rimarku, ke la linioj en ĉi tiu dosiero kutime estas cent kvindek bytes (pro la grandeco de la publika ŝlosila kodigo). Vi ne volas tajpi ilin; anstataŭe, kopiu la identecon.pub id_dsa.pub aŭ la id_rsa.pub-dosiero kaj redakti ĝin.

sshd realigas minimuman RSA-klavan modulon-grandecon por protokolo 1 kaj protokolo 2 klavoj de 768 bitoj.

La ebloj (se ĉeestas) konsistas el komaj dispozicioj. Neniu spaco estas permesata, krom en duoblaj citaĵoj. La jenaj opcioj estas subtenataj (rimarku, ke opcio ŝlosilvortoj estas kazoj-sensencaĵoj):

de = ŝablono-listo

Specifas, ke krom la publika ŝlosila aŭtentigo, la kanona nomo de la izolita gastiganto devas esti ĉeestanta en la komuna listo de ŝablonoj (`* 'kaj`?' Servi kiel kartoj). La listo eble ankaŭ enhavas ŝablonojn negatajn per prefiksante ilin per '!' ; se la kanona gastiga nomo kongruas kun negativa ŝablono, la ŝlosilo ne estas akceptata. La celo de ĉi tiu opcio estas laŭvole pliigi sekurecon: publika ŝlosila aŭtentigo mem ne fidas la reton aŭ nomumajn servilojn aŭ ion ajn (sed la ŝlosilon); tamen, se iu iel ŝtelas la ŝlosilon, la ŝlosilo permesas entrudulon ensaluti de ie ajn en la mondo. Ĉi tiu aldona eblo uzas ŝtelan ŝlosilon pli malfacila (nomumaj serviloj kaj / aŭ routers devus esti kompromititaj krom nur la ŝlosilo).

komando = komando

Indikas, ke la komando estas ekzekutita kiam ĉi tiu ŝlosilo estas uzata por aŭtentika. La komando provizita de la uzanto (se iu) estas ignorita. La komando kuras en pty se la kliento petas pty; alie ĝi kuras sen tty. Se necesas pura kanalo de 8-bitoj, oni ne devas peti pty aŭ devas specifi ne-pty . Citaĵo povas esti inkluzivita en la komando per citi ĝin per backslash. Ĉi tiu opcio povus esti utila por restrikti iujn publikajn klavojn por plenumi nur specifan operacion. Ekzemplo eblus ŝlosilon, kiu ebligas izolitajn rezervojn, sed nenion alian. Notu, ke la kliento povas specifi TCP / IP kaj / aŭ X11-antaŭeniron, se ili ne eksplicite malpermesas. Notu, ke ĉi tiu opcio validas por konkludo, komando aŭ subsistema ekzekuto.

medio = NAME = valoro

Specifas, ke la ĉeno devas esti aldonita al la medio kiam vi ensalutas uzante ĉi tiun ŝlosilon. La variabloj de la medio starigas ĉi tiun manieron anstataŭi aliajn defaŭltajn mediajn valorojn. Multoblaj ebloj de ĉi tiu tipo estas permesitaj. Medio-prilaborado estas malŝaltita defaŭlte kaj estas kontrolita per la PermitUserEnvironment- opcio. Ĉi tiu opcio estas aŭtomate malebligita se UseLogin estas ebligita.

ne-haveno-antaŭenigo

Malhelpas antaŭenigi TCP / IP kiam ĉi tiu ŝlosilo estas uzata por aŭtentika. Ajna haveno antaŭaj petoj de la kliento revenos eraron. Ĉi tio povus esti uzata, ekz., En rilato kun la komando- opcio.

ne-X11-antaŭenigo

Neebligas antaŭenpuŝi X11 kiam ĉi tiu ŝlosilo estas uzata por aŭtentika. Ajna X11-antaŭaj petoj de la kliento revenos eraron.

ne-agento-antaŭenigo

Malhelpas aŭtentikan agenton antaŭenigi kiam ĉi tiu ŝlosilo estas uzata por aŭtentika.

ne-pty

Malhelpas tty-atribuon (peto por asigni pty malsukcesos).

permitopen = gastiganto: haveno

Limigi la lokan '`ssh -L' ' havenon antaŭenigi tia, ke ĝi nur povas konekti al la specifita gastiganto kaj haveno. IPv6-adresoj povas esti specifitaj per alternativa sintakso: gastiganto / haveno Multoblaj permesiloj povas esti aplikeblaj per komoj. Neniu ŝablono-kongruo estas farita sur la specifitaj gastignomoj, ili devas esti laŭvortaj domajnoj aŭ adresoj.

Ekzemploj

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

from = "*. 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 Dosiera Formato

La / etc / ssh / ssh_known_hosts kaj $ HOME / .ssh / known_hosts-dosieroj enhavas gastigajn ŝlosilojn por ĉiuj konataj gastigantoj. La tutmonda dosiero devas esti preta de la administranto (laŭvola), kaj la uzanto-dosiero estas aŭtomate subtenata: kiam la uzanto konektas de nekonata gastiganto, ŝlosilo aldoniĝas al la uzanto-dosiero.

Ĉiu linio en ĉi tiuj dosieroj enhavas la jenajn kampojn: gastignomoj, bitoj, eksponento, modulo, komento. La kampoj estas apartigitaj per spacoj.

Gastignomoj estas komo-disigita listo de ŝablonoj ('*' kaj '?' Agas kiel afiŝoj); ĉiu ŝablono, siavice, estas egalita kontraŭ la kanona gastiganta nomo (kiam aŭtentiganta kliento) aŭ kontraŭ la uzanto provizita (kiam aŭtentigas servilon). Ŝablono ankaŭ povas esti antaŭita de '!' por indiki negadon: se la gastiganta nomo kongruas nekonata ŝablono, ĝi ne estas akceptata (per tiu linio) eĉ se ĝi egalis alian ŝablonon sur la linio.

Bitoj, eksponentoj kaj moduloj estas prenitaj rekte de la RSA-gastiga ŝlosilo; ili povas esti akiritaj, ekzemple, de /etc/ssh/ssh_host_key.pub La laŭvola komenta kampo daŭras ĝis la fino de la linio, kaj ne estas uzata.

Linioj komencantaj per `# 'kaj malplenaj linioj estas ignoritaj kiel komentoj.

Kiam plenumante gastiganta aŭtentikigo, aŭtentikaĵo estas akceptata se iu ajn kongrua linio havas la taŭgan ŝlosilon. Ĝi estas tiel permesebla (sed ne rekomendinda) havi plurajn liniojn aŭ malsamajn gastigajn klavojn por la samaj nomoj. Ĉi tio neeviteble okazas kiam mallongaj formoj de gastigaj nomoj de malsamaj domoj estas enmetitaj en la dosieron. Eblas, ke la dosieroj enhavas konfliktan informon; Aŭtentigo estas akceptita se valida informo troveblas de ajna dosiero.

Rimarku, ke la linioj en ĉi tiuj dosieroj estas kutime cientos da karakteroj longa, kaj vi certe ne volas tajpi la gastigajn klavojn mane. Prefere, generu ilin per skripto aŭ prenante /etc/ssh/ssh_host_key.pub kaj aldonante la gastigajn nomojn ĉe la fronto.

Ekzemploj

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

Vidu ankaŭ

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-Protokolo-Arkitekturo" draft-ietf-secsh-architecture-12.txt januaro 2002 materialo pri progreso

M. Friedl N. Provos WA Simpson "Diffie-Hellman-Grupo-Interŝanĝo por la SSH Transport Layer Protocol" draft-ietf-secsh-dh-group-exchange-02.txt Januaro 2002 laboras en progreso materialo

Grava: Uzu la komandon ( % viro ) por vidi kiel komando estas uzata en via komputilo.