Linux / Amri ya Unix: sshd

Jina

sshd - daemon ya OpenSSH SSH

Sahihi

S - dd [- deiqtD46 ] [- b bits ] [- f config_file ] [- g login_grace_time ] [- k key_gen_time ] [- o chaguo ] [- p port ] [- u len ]

Maelezo

sshd (SSH Daemon) ni mpango wa daemon kwa ssh (1). Vipindi hivi vyote huchagua rlogin na rsh , na kutoa mawasiliano salama encrypted kati ya majeshi mbili untrusted juu ya mtandao salama. Programu hiyo inalenga kuwa rahisi kuweka na kutumia iwezekanavyo.

sshd ni daemon inayosikiliza uhusiano kutoka kwa wateja. Kwa kawaida huanza kwenye boot kutoka / nk / rc Inakumba daemon mpya kwa kila uhusiano unaoingia. Daemons zilizosababishwa kushughulikia kubadilishana muhimu, encryption, uthibitisho, utekelezaji wa amri, na kubadilishana data. Utekelezaji huu wa sshd huunga mkono toleo la SSH 1 na 2 wakati huo huo.

Toleo la Itifaki ya SSH 1

Kila mwenyeji ana kifaa cha RSA maalum (kawaida 1024 bits) ambacho kimetumiwa kutambua mwenyeji. Zaidi ya hayo, wakati daemon inapoanza, inazalisha ufunguo wa seva RSA (kawaida 768 bits). Kitufe hiki ni kawaida hurekebishwa kila saa ikiwa imetumiwa, na haijahifadhiwa kwenye diski.

Kila wakati mteja anaunganisha daemon hujibu na jeshi la umma na funguo za seva. Mteja anafananisha ufunguo wa jeshi la RSA dhidi ya database yake ili kuthibitisha kuwa haijabadilika. Mteja kisha anazalisha namba ya random 256-bit. Inaandika namba hii ya nambari kwa kutumia ufunguo wote wa jeshi na ufunguo wa seva na kutuma namba iliyofichwa kwenye seva. Pande zote mbili hutumia namba hii ya random kama ufunguo wa kikao ambayo hutumiwa kuficha mawasiliano yote zaidi katika kipindi. Kipindi kimoja kinafichwa kwa kutumia kitambaa cha kawaida, kwa sasa Blowfish au 3DES, na 3DES inatumiwa na default. Mteja anachagua algorithm ya encryption kutumia kutoka kwa wale zinazotolewa na seva.

Ifuatayo, seva na mteja huingia kwenye majadiliano ya uthibitishaji. Mteja anajaribu kujihakikishia kutumia uthibitisho wa .hostuku, uthibitisho wa .hostuku pamoja na uthibitishaji wa jeshi la RSA, uthibitishaji wa changamoto ya RSA, au kuthibitisha nenosiri .

Uthibitisho wa roho ni kawaida walemavu kwa sababu ni salama kabisa, lakini inaweza kuwezeshwa katika faili ya usanidi wa seva ikiwa inahitajika. Usalama wa mfumo hauboreshwa isipokuwa rshd rlogind na rexecd ni walemavu (hivyo kabisa kuzuia rlogin na rsh ndani ya mashine).

Toleo la Programu ya SSH 2

Toleo la 2 linafanya kazi sawa: Mjumbe wa kila mmoja ana kipaumbele maalum (RSA au DSA) kilichotumiwa kutambua mwenyeji. Hata hivyo, wakati daemon inapoanza, haina kuzalisha ufunguo wa seva. Usalama wa mbele hutolewa kwa makubaliano muhimu ya Diffie-Hellman. Mkataba huu muhimu unasababisha kikao cha kikao cha pamoja.

Kipindi cha kikao kinafichwa kwa kutumia kipimo kinacholingana, kwa sasa 128 bit AES, Blowfish, 3DES, CAST128, Arcfour, 192 bit AES, au 256 bit AES. Mteja anachagua algorithm ya encryption kutumia kutoka kwa wale zinazotolewa na seva. Zaidi ya hayo, utimilifu wa kikao hutolewa kupitia kanuni ya uthibitisho wa ujumbe wa kielelezo (hmac-sha1 au hmac-md5).

Itifaki ya toleo la 2 hutoa mtumiaji muhimu wa msingi (PubkeyAuthentication) au mwenyeji wa mteja (Njia ya uthibitisho wa HostbasedAuthentication), uthibitisho wa nenosiri wa kawaida, na mbinu za kukabiliana na changamoto.

Utekelezaji wa amri na Uwasilishaji wa Data

Ikiwa mteja anajihakikishia yenyewe, dialog ya kuandaa kikao imeingia. Kwa wakati huu mteja anaweza kuomba mambo kama kugawa pseudo-tty, kupeleka uhusiano wa X11, usambazaji wa uhusiano wa TCP / IP, au kupeleka uhusiano wa wakala wa kuthibitisha juu ya kituo kilicho salama.

Hatimaye, mteja anaomba shell au utekelezaji wa amri. Pande kisha ingiza msimu wa kikao. Katika hali hii, upande wowote unaweza kutuma data wakati wowote, na data kama hizo zinatumwa kwa / kutoka shell au amri kwenye upande wa seva, na terminal ya mtumiaji kwenye upande wa mteja.

Mpango wa mtumiaji ukisimamisha na wote uliotumwa X11 na uhusiano mwingine umefungwa, seva inatuma hali ya kuondoka kwa amri kwa mteja na pande zote mbili kutoka.

sshd inaweza kusanidiwa kutumia chaguzi za mstari wa amri au faili ya usanidi. Chaguo la amri ya amri hupunguza maadili yaliyotajwa katika faili ya usanidi.

sshd inachunguza tena faili yake ya usanifu wakati inapokea ishara ya hangup, SIGHUP kwa kujifanya yenye jina limeanzishwa kama, yaani, / usr / sbin / sshd

Chaguzi ni kama ifuatavyo:

-b bits

Inafafanua namba ya bits katika toleo la seva ya ephemeral 1 ya seva (default 768).

-d

Hali ya kufuta. Seva hutuma pembejeo ya uboreshaji wa verbose kwa logi ya mfumo na haujijike nyuma. Seva pia haitafanya kazi na itafanya tu uunganisho mmoja. Chaguo hili linalenga tu kwa kufuta kwa seva. Chaguo-chaguzi nyingi huongeza kiwango cha kufuta debugging. Upeo ni 3.

-e

Wakati chaguo hili ni maalum, sshd itatuma pato kwa kosa la kawaida badala ya logi ya mfumo.

-f muundo wa usanidi

Inataja jina la faili ya usanidi. Kichapishaji ni / nk / ssh / sshd_config sshd anakataa kuanza kama hakuna faili ya usanidi.

-g login_grace_time

Inatoa wakati wa neema kwa wateja kujitambulisha wenyewe (sekunde za chini 120). Ikiwa mteja hawezi kuthibitisha mtumiaji ndani ya sekunde hizi nyingi, seva huunganisha, na hutoka. Thamani ya sifuri haionyesha kikomo.

-h hiti_key_file

Inabainisha faili ambayo ufunguo wa jeshi unasoma. Chaguo hili linapaswa kutolewa ikiwa sshd haitumiki kama mizizi (kama faili za kawaida za mwenyeji wa kawaida si kawaida kuonekana na mtu yeyote bali mizizi). Kichapishaji ni / nk / ssh / ssh_host_key kwa toleo la itifaki ya 1, na / nk / ssh / ssh /host_rsa_key na / nk / ssh / ssh_host_dsa_key kwa toleo la protolo 2. Inawezekana kuwa na faili nyingi muhimu za jeshi kwa matoleo tofauti ya protokto na kiambatanisho algorithms.

-i

Inabainisha kwamba sshd inatumika kutoka inetd. sshd si kawaida kukimbia kutoka inetd kwa sababu inahitaji kuzalisha ufunguo wa seva kabla ya kujibu kwa mteja, na hii inaweza kuchukua makumi ya sekunde. Wateja wanapaswa kusubiri kwa muda mrefu kama ufunguo ulianza upya kila wakati. Hata hivyo, kwa ukubwa ndogo za ufunguo (kwa mfano, 512) kutumia sshd kutoka inetd inaweza kuwa rahisi.

-k key_gen_time

Inafafanua ni mara ngapi ufunguo wa seva ya ephemeral wa toleo la 1 unafanywa upya (sekunde 3600, au saa moja). Msukumo wa kurejesha ufunguo mara kwa mara ni kwamba ufunguo hauhifadhiwa mahali popote, na baada ya saa moja, inakuwa vigumu kupona ufunguo wa kupitisha mawasiliano iliyopigwa hata kama mashine imevunjwa au imechukuliwa kimwili. Thamani ya sifuri inaonyesha kwamba ufunguo hauwezi kubadilishwa tena.

-o chaguo

Inaweza kutumika kutoa chaguzi katika muundo uliotumika kwenye faili ya usanidi. Hii ni muhimu kwa kubainisha chaguo ambazo hakuna bendera ya mstari wa amri tofauti.

-p bandari

Inabainisha bandari ambayo seva inasikiliza uhusiano (default 22). Chaguzi nyingi za bandari zinaruhusiwa. Bandari zilizowekwa katika faili ya usanifu hupuuzwa wakati bandari ya mstari wa amri imeelezwa.

-q

Hali ya utulivu. Hakuna kitu kinachotumwa kwenye logi ya mfumo. Kwa kawaida mwanzo, uthibitisho, na uondoaji wa kila uhusiano huingia.

-t

Mtihani wa hali. Angalia uhalali wa faili ya usanidi na usafi wa funguo. Hii ni muhimu kwa ajili ya uppdatering sshd kwa uhakika kama chaguo za usanidi zinaweza kubadilika.

-u len

Chaguo hili hutumiwa kutaja ukubwa wa shamba kwenye muundo wa utmp ambao una jina la kijijini cha kijijini. Ikiwa jina la jeshi la kutatuliwa ni la muda mrefu zaidi kuliko lenye thamani ya thamani ya decimal itatumiwa badala yake. Hii inaruhusu majeshi na majina ya muda mrefu sana ya jeshi ambayo yanazidi shamba hili ili bado lijitambulishwe kwa pekee. Kufafanua - u0 inaonyesha kuwa anwani za dakika tu zinapaswa kuwekwa kwenye faili ya utmp. - U0 pia hutumiwa kuzuia sshd kutoka kufanya maombi ya DNS isipokuwa utaratibu wa uhakikisho au usanidi unahitaji. Njia za uthibitishaji ambazo zinaweza kuhitaji DNS zinajumuisha RhostsUthibitishaji wa RhostsRSAAuthentication HostbasedUthibitishaji na kutumia kutoka = chaguo -orodha chaguo katika faili muhimu. Chaguzi za upangiaji ambazo zinahitaji DNS ni pamoja na kutumia USER @ HOST muundo katika AllowUsers au DenyUsers

-D

Wakati chaguo hili ni maalum sshd haitachukua na haitakuwa daemon. Hii inaruhusu ufuatiliaji rahisi wa sshd

-4

Vikosi sshd kutumia anwani IPv4 tu.

-6

Vikosi sshd kutumia anwani za IPv6 tu.

File Configuration

Sshd inasoma data ya usanidi kutoka / / / ssh / sshd_config (au faili iliyowekwa na - f kwenye mstari wa amri). Faili ya faili na chaguo za usanifu huelezwa kwenye sshd_config5.

Ingia Mchakato

Mtumiaji anapoingia kwa ufanisi, sshd anafanya yafuatayo:

  1. Ikiwa kuingia ni juu ya tty, na hakuna amri imewekwa, inachukua muda wa kuingia wa mwisho na / nk / motd (isipokuwa imezuiwa faili ya usanidi au kwa $ HOME / .hushlogin tazama sehemu ya SX FILES).
  2. Ikiwa kuingia ni kwenye tty, rekodi wakati wa kuingia.
  3. Cheki / nk / nologin ikiwa ipo, inabadilisha maudhui na vipindi (isipokuwa mizizi).
  4. Mabadiliko ya kukimbia na marupurupu ya kawaida ya mtumiaji.
  5. Inaweka mazingira ya msingi.
  6. Inasoma $ HOME / .ssh / mazingira ikiwa iko na watumiaji wanaruhusiwa kubadili mazingira yao. Tazama chaguo la PermitUserEnvironment katika sshd_config5.
  7. Mabadiliko kwenye saraka ya nyumbani ya mtumiaji.
  8. Ikiwa $ HOME / .ssh / rc ipo, inaendesha; mwingine kama / nk / ssh / sshrc ipo, inaendesha; vinginevyo huendesha xauth. Faili `` rc '' hupewa itifaki ya uthibitisho wa X11 na cookie katika pembejeo ya kawaida.
  9. Inatumia shell ya mtumiaji au amri.

Fomu ya faili ya Authorized_Keys

$ HOME / .ssh / authorized_keys ni faili default ambayo inatafanua funguo za umma ambazo zinaruhusiwa kuthibitishwa kwa RSA katika toleo la protokali 1 na uthibitishaji wa ufunguo wa umma (PubkeyAuthentication) katika toleo la itifaki 2. UidhinishajiKeysFile inaweza kutumika kutaja faili mbadala.

Kila mstari wa faili ina ufunguo mmoja (mistari tupu na mistari inayoanzia `# 'hupuuzwa kama maoni). Kila ufunguo wa umma wa RSA una mashamba yafuatayo, yaliyotengwa na nafasi: chaguo, bits, exponent, modulus, maoni. Kila ufunguo wa toleo la 2 wa umma lina: chaguzi, keytype, msingi wa msingi wa msingi wa msingi, maoni. Sehemu ya chaguzi ni hiari; uwepo wake unatambuliwa kama mstari unaanza na idadi au la (shamba la chaguo halijaanza na idadi). Bits, maonyesho, modulus na maeneo ya maoni hutoa ufunguo wa RSA kwa toleo la protokete 1; uwanja wa maoni hautumiwi kwa chochote (lakini inaweza kuwa rahisi kwa mtumiaji kutambua ufunguo). Kwa toleo la itifaki 2 keytype ni `` ssh-dss '' au `` ssh-rsa ''

Kumbuka kwamba mistari katika faili hii ni kawaida mia kadhaa kwa muda mrefu (kwa sababu ya ukubwa wa encoding ya ufunguo wa umma). Hutaki kuiweka ndani; badala yake, nakala nakala.pub id_dsa.pub au file id_rsa.pub na uhariri.

sshd inasaidia kiwango cha chini cha RSA ya moduli ya ukubwa wa itifaki 1 na ishara ya 2 ya funguo za 768.

Chaguo (ikiwa nipo) kinajumuisha vipimo vya chaguo tofauti. Hakuna nafasi zinazoruhusiwa, isipokuwa ndani ya quotes mbili. Vifungu vifuatavyo vyafuatayo vinasaidiwa (kumbuka kuwa maneno ya chaguo la chaguo ni kesi isiyofaa):

kutoka = orodha ya muundo

Inasema kuwa kwa kuongeza uhakikisho wa ufunguo wa umma, jina la kisheria la jeshi la kijijini linapaswa kuwepo kwenye orodha ya mfululizo wa vifungu (`* 'na`?' Hutumikia kama msimbo wa wildcards). Orodha inaweza pia kuwa na mwelekeo uliopuuzwa na kuifanya yao kwa `! ' ; ikiwa jina la mwenyeji wa kisheria linalingana na muundo usiojificha, ufunguo haukubaliki. Kusudi la chaguo hili ni kuongeza hiari usalama: uhakikishaji wa ufunguo wa umma peke yake hauamini mtandao au seva za jina au chochote (lakini ufunguo); hata hivyo, ikiwa mtu fulani anaiba ufunguo, muhimu huruhusu mtumiaji kuingia kutoka popote duniani. Chaguo hiki cha ziada hufanya kutumia kiboho kilichoibiwa kuwa vigumu zaidi (jina la seva na / au barabara zinahitajika kuathiriwa kwa kuongeza kifupi tu).

amri = amri

Inasema kwamba amri inafanywa wakati wowote ufunguo huu unatumiwa kwa uthibitishaji. Amri inayotolewa na mtumiaji (kama ipo) inapuuzwa. Amri inaendeshwa kwa pty ikiwa mteja anaomba pty; vinginevyo ni kukimbia bila tty. Ikiwa kituo cha usafi cha 8-bit kinahitajika, mtu haipaswi kuomba pty au anatakiwa kutaja hakuna-pty A quote inaweza kuingizwa katika amri kwa kuukumbuka kwa backslash. Chaguo hili linaweza kuwa muhimu kuzuia funguo fulani za umma ili kufanya operesheni maalum. Mfano inaweza kuwa ufunguo ambao unaruhusu salama za kijijini lakini hakuna chochote kingine. Kumbuka kwamba mteja anaweza kutaja TCP / IP na / au usafirishaji wa X11 isipokuwa wanavyokatazwa wazi. Kumbuka kuwa chaguo hili linahusu shell, amri au utekelezaji wa mfumo.

mazingira = NAME = thamani

Inasema kuwa kamba ni lazima iongezwe kwenye mazingira wakati unapoingia kwenye kutumia kitufe hiki. Vigezo vya mazingira kuweka njia hii override maadili mengine ya mazingira ya default. Chaguzi nyingi za aina hii zinaruhusiwa. Usindikaji wa mazingira umezimwa na default na inadhibitiwa kupitia chaguo la PermitUserEnvironment . Chaguo hili ni kizima kizima ikiwa UseLogin imewezeshwa.

usafirishaji wa bandari

Inakataza usambazaji wa TCP / IP wakati ufunguo huu unatumiwa kwa uthibitishaji. Maombi yoyote ya bandari ya mbele ya mteja atarudi kosa. Hii inaweza kutumika, kwa mfano, kuhusiana na chaguo la amri .

hakuna-X11-kupeleka

Inakataza uhamisho wa X11 wakati ufunguo huu unatumika kwa uthibitishaji. Maombi yoyote ya X11 ya mbele na mteja atarudi kosa.

hakuna-kupeleka wakala

Inakataza kupeleka wakala wa kuthibitisha wakati ufunguo huu unatumika kwa uthibitishaji.

hakuna-pty

Inazuia ugawaji wa tty (ombi la kutenga pty litashindwa).

permitopen = mwenyeji: bandari

Weka mkoa wa `ssh -L '' uhamisho wa bandari ili uweze kuunganisha tu kwenye jeshi maalum na bandari. Anwani za IPv6 zinaweza kuchaguliwa kwa syntax mbadala: mwenyeji / bandari Chaguo nyingi za kibali cha kupitishwa inaweza kutumika kutenganishwa na vitambaa. Hakuna mfano unaofanana unaofanywa kwenye majina maalum, lazima iwe maeneo au anwani halisi.

Mifano

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

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

amri = "dampo / nyumbani", hakuna-pty, usafirishaji wa bandari 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 File Format

Vipengele vya / nk / ssh / ssh_known_ na faili za HOME / .ssh / know_hosts zina vifungo vya umma vya jeshi kwa majeshi yote inayojulikana. Faili ya kimataifa inapaswa kutayarishwa na msimamizi (hiari), na faili ya kila mtumiaji inasimamiwa moja kwa moja: wakati wowote mtumiaji anajumuisha kutoka kwa jirani isiyojulikana, ufunguo wake unongezwa kwenye faili ya mtumiaji.

Kila mstari katika faili hizi ina nyanja zifuatazo: majina ya majina, bits, exponent, modulus, maoni. Mashamba yanajitenga na nafasi.

Majina ya majina ni orodha ya mfululizo wa vifungu ('*' na '?' Hufanya kama wildcards); kila muundo, kwa upande wake, unafanana dhidi ya jina la mwenyeji wa kisheria (wakati wa kuthibitisha mteja) au dhidi ya jina linalojitokeza na mtumiaji (wakati uhakikishia seva). Mfano unaweza pia kutanguliwa na `! ' kuonyesha udanganyifu: ikiwa jina la mwenyeji linalingana na muundo uliojificha, haukubaliki (kwa mstari huo) hata ikiwa unafanana na muundo mwingine kwenye mstari.

Bits, exponent, na modulus ni kuchukuliwa moja kwa moja kutoka RSA mwenyeji muhimu; zinaweza kupatikana, kwa mfano, kutoka /etc/ssh/ssh_host_key.pub Eneo la maoni ya hiari linaendelea hadi mwisho wa mstari, na haitumiwi.

Mipango kuanzia `# 'na mistari tupu hazipuuuliwa kama maoni.

Wakati wa kufanya uthibitishaji wa jeshi, uthibitishaji unakubalika ikiwa mstari unaofanana unao ufunguo sahihi. Kwa hiyo inawezekana (lakini haipendekezi) kuwa na mistari kadhaa au funguo tofauti za mwenyeji kwa majina sawa. Hii itawezekana kutokea wakati majina mafupi ya majina ya majeshi kutoka kwenye vikoa tofauti yanawekwa kwenye faili. Inawezekana kwamba faili zina habari zinazopingana; uthibitishaji unakubalika ikiwa habari halali inaweza kupatikana kutoka faili yoyote.

Kumbuka kuwa mistari katika faili hizi ni kawaida ya wahusika kwa muda mrefu, na hakika hawataki kuingiza kwenye funguo za mwenyeji kwa mkono. Badala yake, uzalishe kwa script au kwa kuchukua /etc/ssh/ssh_host_key.pub na kuongeza majina ya jeshi mbele.

Mifano

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

Angalia pia

fp (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 ya Usanifu wa Itifaki" ya usanifu wa rasimu-seti-secsh-12.txt Januari 2002 kazi inayoendelea nyenzo

Mwandishi wa Friedl N. Provos wa Simpson "Diffie-Hellman Group Exchange kwa Programu ya SSH ya Layout ya Usafiri" rasimu ya-seti-secsh-dh-exchange exchange-02.txt Januari 2002 kazi katika nyenzo zinazoendelea

Muhimu: Tumia amri ya mtu ( % mtu ) ili kuona jinsi amri hutumiwa kwenye kompyuta yako fulani.