Linux / Unix команадсы: sshd

Атауы

sshd - OpenSSH SSH демоны

Синопсис

sshd [- deiqtD46 ] [ -b bits ] [ -f config_file ] [ -g login_grace_time ] [- h host_key_file ] [- k key_gen_time ] [- o опциясы ] [- p port ] [- u len ]

Сипаттама

sshd (SSH Daemon) ssh (1) бағдарламасының демеушісі болып табылады. Бұл бағдарламалар рлогинді ауыстырады және rsh , сенімді емес хосттар арасында қауіпсіз емес желі арқылы қауіпсіз шифрланған байланыстарды қамтамасыз етеді. Бағдарламалар мүмкіндігінше орнатуға және пайдалануға оңай.

sshd - клиенттердің қосылуларын тыңдайтын демон. Ол әдетте жүктеу кезінде / etc / rc файлынан басталады. Форманың қондырғылары негізгі алмасу, шифрлау, түпнұсқалық растама, командалық орындау және деректермен алмасуды басқарады. Бұл sshd іске асыру SSH хаттамасының 1 және 2 нұсқаларын бір мезгілде қолдайды.

SSH Хаттама Протоколы 1

Әр хост хостты анықтау үшін пайдаланылатын хостқа тән RSA кілті (әдетте 1024 бит) бар. Сонымен қатар, демон басталған кезде ол RSA кілтін жасайды (әдетте 768 бит). Бұл кілт əдетте əрбір сағатта жаңартылып, ол пайдаланылған жəне дискіде ешқашан сақталмайды.

Қашан клиент қосылса, оның демоны жалпы хост пен сервер кілттерімен жауап береді. Клиент RSA хост кілтін өз дерекқорына қарсы салыстырмайтындығын тексеру үшін салыстырады. Клиент кейін 256-биттік кездейсоқ санды жасайды. Бұл кездейсоқ санды шифрланған нөмірді серверге жібереді және хост түймесімен және сервер кілтімен шифрлайды. Екі жағынан кейін бұл кездейсоқ санды сеанстағы барлық қосымша хабарларды шифрлау үшін пайдаланылатын сеанс кілті ретінде пайдаланыңыз. Сеанстың қалған бөлігі әдеттегі шифры бар, қазіргі уақытта Blowfish немесе 3DES, шифрланады, әдепкі бойынша 3DES пайдаланылады. Клиент сервер ұсынатын шифрлау алгоритмін таңдайды.

Одан кейін, сервер мен клиент аутентификация диалогын енгізеді. Клиент түпнұсқаландыру, .rhosts түпнұсқалық растамасы, RSA хостының түпнұсқалылығын растау, RSA шақыруына жауап беру түпнұсқалығын растау немесе құпия сөзге негізделген түпнұсқалық растама көмегімен бірдейлендіруді қолданып, өзін сәйкестендіруге тырысады.

Rhosts түпнұсқалығын растау әдетте өшіріледі, себебі ол негізсіз қауіпті, бірақ қаласаңыз сервер конфигурациясы файлында қосылуы мүмкін. Rshd rlogind және rexecd өшірілмегенше жүйе қауіпсіздігі жақсармайды (осылайша, rlogin және rsh құрылғысын толық өшіреді).

SSH Хаттама Протоколы 2

Нұсқа 2 ұқсас түрде жұмыс істейді: Әр хост хостты анықтау үшін пайдаланылатын хостқа тән кілт (RSA немесе DSA) бар. Дегенмен, демон басталғанда ол сервер кілті жасамайды. Алға қауіпсіздік Diffie-Hellman кілт келісімімен қамтамасыз етіледі. Бұл негізгі келісім жалпы сеанс кілтіне әкеледі.

Сессияның қалған бөлігі симметриялық шифрды, қазіргі кезде 128 бит AES, Blowfish, 3DES, CAST128, Arcfour, 192 бит AES немесе 256 бит AES арқылы шифрланады. Клиент сервер ұсынатын шифрлау алгоритмін таңдайды. Сонымен қатар, сессияның тұтастығы криптографиялық хабарламаның аутентификация коды (hmac-sha1 немесе hmac-md5) арқылы қамтамасыз етіледі.

Протоколдың 2-нұсқасы ашық кілт негізіндегі пайдаланушыны (PubkeyAuthentication) немесе клиент хостының (HostbasedAuthentication) түпнұсқалық растама әдісін, кәдімгі құпия сөздің түпнұсқалығын растауды және шақыруларға жауап беру әдістерін ұсынады.

Командалық орындау және деректерді бағыттау

Егер клиент өздігінен түпнұсқалығын растайтын болса, сеансты дайындау диалогы енгізіледі. Қазіргі уақытта клиент псевдотты бөлу, X11 қосылымдарын жіберу, TCP / IP байланыстарын жіберу немесе аутентификация агентінің қосылуын қауіпсіз арна арқылы жіберу сияқты нәрселерді сұрауы мүмкін.

Ақырында, клиент тапсырманы орындауға немесе пәрменді орындауды сұрайды. Тараптар сеанс режиміне өтеді. Бұл режимде кез-келген тарап кез-келген уақытта деректерді жібере алады және мұндай деректер сервер тарапынан немесе клиенттік жағында пайдаланушы терминалының қабықшасына немесе командасына жіберіледі.

Пайдаланушы бағдарламасы аяқталғаннан кейін және X11 және басқа қосылымдар жіберілгенде, сервер клиентке командалық шығу мәртебесін жібереді және екі жағынан да шығады.

sshd пәрмен жолы параметрлері немесе теңшелім файлы арқылы теңшелуі мүмкін. Пәрмен жолы опциялары теңшелім файлында көрсетілген мәндерді ауыстырады.

sshd өзінің конфигурациялық файлын қайтадан қарап, ол SIGHUP сигналын алады, SIGHUP оны іске қосқан атымен орындап, яғни / usr / sbin / sshd

Опциялар келесідей:

-b бит

1 серверлік кілтінің эфемерлік хаттама нұсқасындағы биттердің санын анықтайды (әдепкі 768).

-d

Debug режимі. Сервер жүйелі журналға отладка шығаруды нақты түрде жібереді және оны фонға қоймайды. Сервер сондай-ақ жұмыс істемейді және тек бір қосылымды өңдейді. Бұл параметр тек сервер үшін отладтауға арналған. Көптеген -d опциялары жөндеудің деңгейін арттырады. Максимум - 3.

-e

Бұл опция көрсетілгенде, sshd жүйелік журналдың орнына шығынды стандартты қатеге жібереді.

-f configuration_file

Конфигурация файлының атауын көрсетеді. Әдепкі бойынша / etc / ssh / sshd_config sshd конфигурациялық файл болмаса, іске қосудан бас тартады.

-g login_grace_time

Клиенттердің өздерін аутентификациялау үшін жеңілдік уақытын береді (әдепкі 120 секунд). Егер тұтынушы бірнеше секунд ішінде пайдаланушыны түпнұсқалығын растай алмаса, сервер ажыратады және шығады. Нөлдің мәні шектеусіз көрсетеді.

-h host_key_file

Хост түймесі оқылған файлды анықтайды. Бұл параметр sshd түбір ретінде іске қосылмаған жағдайда берілуі керек (әдеттегі хост кілттері файлдары әдетте ешкімнен емес, бірақ түбірімен оқуға болмайды). Әдепкіде, хаттама нұсқасы үшін / etc / ssh / ssh_host_key және / etc / ssh / ssh_host_rsa_key және / etc / ssh / ssh_host_dsa_key протоколының 2-нұсқасы болып табылады. Әртүрлі хаттама және хост-кілт алгоритмдер.

-i

Sshd инетдтен іске қосылатынын көрсетеді. sshd әдетте inetd-дан іске қосылмайды, себебі ол клиентке жауап бере алмас бұрын сервер кілтін жасау керек және бұл он секундқа созылуы мүмкін. Кілт әр уақыт сайын жаңартылып тұрса, клиенттер ұзақ уақыт күтуге тура келеді. Дегенмен, кіші кілт өлшемдерімен (мысалы, 512) inetd ішіндегі sshd- ді қолдану мүмкін болуы мүмкін.

-k key_gen_time

Эфемералды хаттама нұсқасының 1 сервер кілті қаншалықты жиі жаңартылатындығын анықтайды (әдепкі 3600 секунд немесе бір сағат). Кілтті қалпына келтірудің негізі жиі болып табылады, бұл кілт еш жерде сақталмайды және шамамен бір сағат өткеннен кейін, тіпті машина жарылып немесе физикалық түрде тәркіленген болса да, үзілген хабарламаларды шифрдан шығару үшін кілт қалпына келтіру мүмкін емес. Нөлдің мәні кілт ешқашан жаңартылмайтынын көрсетеді.

-o опциясы

Параметрлерді конфигурация файлында қолданылатын пішімде беру үшін пайдалануға болады. Бұл жеке командалық жолдың жалауы жоқ параметрлерді көрсету үшін пайдалы.

-p порты

Сервер қосылымдарға тыңдайтын портты көрсетеді (әдепкі 22). Бірнеше порт опцияларына рұқсат етіледі. Пәрмен жолы порты көрсетілгенде теңшелім файлында көрсетілген порттар ескерілмейді.

-q

Тыныш режим. Жүйелік журналға ештеңе жіберілмейді. Әдетте әр қосылымның басталуы, түпнұсқаландыруы және тоқтатылуы жазылады.

-t

Сынақ режимі. Тек конфигурациялық файлдың жарамдылығын және кілттердің ақыл-ойын тексеріңіз. Бұл конфигурация параметрлері өзгеруі мүмкін, өйткені sshd-ді сенімді түрде жаңарту үшін пайдалы.

-u len

Бұл параметр қашықтағы хост атауын ұстайтын utmp құрылымында өрістің өлшемін көрсету үшін пайдаланылады. Егер шешілген хост атауы леннен ұзын болса, ондық нүкте мәні пайдаланылады. Бұл осы өрісті толығымен бірегейлендіруге болатын өте ұзақ хост аттары бар хосттарға мүмкіндік береді. Белгілеу - u0 тек utmp файлына тек ондық бөлшек мекенжайларын қою керек екенін білдіреді. - u0 сонымен қатар аутентификация механизмі немесе конфигурациясы талап етілмесе, sshd DNS сұрауларын орындаудан қорғау үшін пайдаланылады. DNS- ке талап етілуі мүмкін түпнұсқалықты растау механизмдері RhostsAuthentication RhostsRSAAuthentication HostbasedAuthentication және кілт файлы ішінен = pattern-list опциясын қолданады. DNS талап ететін конфигурация опциялары AllowUsers немесе DenyUsers бағдарламасында USER @ HOST үлгісін қолданады

-D

Бұл опция көрсетілгенде sshd ажыратылмайды және демон болып қалады. Бұл sshd-ті оңай бақылауға мүмкіндік береді

-4

IPv4 мекенжайларын ғана пайдалану үшін sshd күштері.

-6

IPv6 мекенжайларын тек SSH мекенжайларын пайдалану үшін күштер.

Конфигурация файлы

sshd конфигурация деректерін / etc / ssh / sshd_config (немесе файлмен көрсетілген - f пәрмен жолынан) оқиды. Файл пішімі және конфигурация опциялары sshd_config5 ішінде сипатталған.

Кіру үдерісі

Пайдаланушы сәтті кіргенде, sshd келесі әрекеттерді жасайды:

  1. Егер логин tty ішінде болса және ешқандай команда көрсетілмесе, соңғы кіру уақыты және / etc / motd (конфигурация файлында алдын-ала болмаса немесе $ HOME / .hushlogin Sx FILES бөлімін қараңыз) басып шығарады.
  2. Егер логин tty ішінде болса, кіру уақытын жазады.
  3. Тексеру / etc / nologin, егер бар болса, мазмұнды басып шығарады (егер root болмаса).
  4. Қалыпты пайдаланушы артықшылықтарымен іске қосу үшін өзгертулер.
  5. Негізгі ортаны орнатады.
  6. Егер ол бар болса, $ HOME / .ssh / environment оқылады және пайдаланушылар өз ортасын өзгертуге рұқсат етіледі. Sshd_config5 ішіндегі PermitUserEnvironment параметрін қараңыз.
  7. Пайдаланушының үй каталогына өзгертулер.
  8. Егер $ HOME / .ssh / rc бар болса, оны іске қосады; else / etc / ssh / sshrc бар болса, оны іске қосады; әйтпесе xauth іске қосылады. Файлдар «rc» X11 түпнұсқалығын тексеру хаттамасымен беріледі және cookie стандартты енгізу.
  9. Пайдаланушының қабығы немесе пәрменін іске қосады.

Authorized_Keys файл пішімі

$ HOME / .ssh / authorized_keys - протоколдың 2-нұсқасында RSA түпнұсқалық растамасына рұқсат етілген ашық кілттерді және протоколдың 2-нұсқасында жалпыға қолжетімді кілтті түпнұсқалық растауды (PubkeyAuthentication) жасайтын әдепкі файл. AuthorizedKeysFile баламалы файлды көрсету үшін пайдаланылуы мүмкін.

Файлдың әрбір жолында бір түйме бар (бос жолдар мен '#' басталатын жолдар түсініктеме ретінде еленбейді). Әр RSA ашық кілті кеңістіктермен бөлінген келесі өрістерден тұрады: опциялар, биттер, экспонент, модуль, түсініктеме. Әрбір хаттама нұсқасының 2 ашық кілті тұрады: параметрлер, кілт түрі, base64 кодталған кілт, түсініктеме. Параметрлер өрісі міндетті емес; оның болуы сызықтың саннан басталатынын немесе анықталмайтынын анықтайды (опциялар өрісі ешқашан санмен басталмайды). Биттер, экспонент, модуль және түсініктеме өрістері RSA кілтін протоколдың 1-нұсқасына береді; түсініктеме өрісі ештеңе үшін пайдаланылмайды (бірақ пайдаланушыға кілтті анықтау үшін қолайлы болуы мүмкін). Протоколдың 2-нұсқасы үшін кілт типі `` ssh-dss 'немесе `ssh-rsa'

Бұл файлдағы сызықтар әдетте бірнеше жүз байт ұзағырақ екеніне назар аударыңыз (жалпыға қолжетімді кілт кодының өлшеміне байланысты). Оларды тергіңіз келмейді; орнына identity.pub id_dsa.pub немесе id_rsa.pub файлын көшіріп, оны өңдеңіз.

sshd 1 протоколы үшін RSA кілт модулінің ең аз өлшемін және 768 биттің 2 пернесін хаттама жасайды.

Параметрлер (бар болса) үтірмен бөлектелген параметр опцияларынан тұрады. Қос тырнақшалардан басқа бос орындарға рұқсат етілмейді. Келесі опцияларға қолдау көрсетіледі (опцияның кілт сөздері регистрге тәуелді емес):

= үлгі тізімінен

Ашық кілттің түпнұсқалық растамасына қосымша қашықтағы хосттың атауының атауы үтірмен бөлінген үлгілер тізімінде болуы керек ('*' және '?' Қойылмалы таңбалар ретінде қызмет етуі керек). Тізімде сонымен бірге `` `жолымен префиксирования арқылы қабылданбаған үлгілер болуы мүмкін. ; егер канондық хост атауы теріс үлгіге сәйкес келсе, кілт қабылданбайды. Бұл опцияның мақсаты опционды қауіпсіздікті арттыру болып табылады: ашық кілттерді түпнұсқаландыру өзі желінің немесе атау серверлерінің немесе ештеңеге сенімсіз (бірақ кілт); алайда, егер біреу кілтті ұрласа, кілт бұзушыны әлемнің кез келген жерінен кіруге мүмкіндік береді. Бұл қосымша опция ұрланған кілтті пайдалануды қиындатады (атау серверлері және / немесе маршрутизаторлар кілттің толықтыруларына қосымша).

command = командасы

Бұл кілт түпнұсқалық растама үшін пайдаланылғанда, пәрменнің орындалуын анықтайды. Пайдаланушы беретін (бар болса) командасы еленбейді. Егер клиент pty сұраса, пәрмен pty-де іске қосылады; әйтпесе tty жоқ іске қосылады. Егер 8-биттік таза арна қажет болса, pty сұрауға болмайды немесе no-pty көрсетпеуі керек. Командаға кері қиғаш сызықпен дәйексөз келтіре аласыз. Бұл параметр белгілі бір жалпы кілттерді нақты операцияны орындау үшін шектеу үшін пайдалы болуы мүмкін. Мысал қашықтағы сақтық көшірмелеуге мүмкіндік беретін кілт болуы мүмкін, бірақ ештеңе жоқ. Клиент TCP / IP және / немесе X11 бағыттауды көрсете алады, егер олар нақты тыйым салынбаған болса. Бұл опция қабықша, пәрмен немесе шағын жүйені орындау үшін қолданылады.

environment = NAME = мән

Бұл пернені пайдаланып жатқанда жолдың ортаға қосылатындығын анықтайды. Қоршаған ортаны айнымалылар осы жолмен басқа әдепкі орта мәндерін алдын ала анықтайды. Осы түрдің көптеген нұсқаларына рұқсат етіледі. Қоршаған ортаны өңдеу әдепкі бойынша ажыратылған және PermitUserEnvironment параметрі арқылы басқарылады. UseLogin қосулы болса, бұл опция автоматты түрде өшіріледі.

порты жоқ-бағыттау

Түпнұсқалық растама үшін осы кілт қолданылғанда TCP / IP бағыттауды тыйады. Клиент тарапынан кез келген порты алға сұраулар қатені қайтарады. Бұл, мысалы, команда опциясына байланысты пайдаланылуы мүмкін.

жоқ-X11-бағыттау

Бұл кілт аутентификация үшін пайдаланылғанда X11 жіберуге тыйым салады. Клиенттің кез келген X11 алға сұраулары қатені қайтарады.

агент-экспедициясыз

Түпнұсқалық растама үшін осы кілт қолданылғанда, аутентификация агентінің жіберілуіне тыйым салынады.

no-pty

Ти бөлуді болдырмау (Pty бөлу туралы сұрау орындалмайды).

permopen = host: порт

Жергілікті «ssh -L» портын бағыттау, ол тек көрсетілген хост пен портқа қосылуы мүмкін. IPv6 мекенжайлары баламалы синтаксиспен көрсетілуі мүмкін: host / port Бірнеше рұқсат етілген параметрлері үтірлермен бөлектелуі мүмкін. Көрсетілген хост аттарында үлгі сәйкестігі орындалмайды, олар әдеттегі домендер немесе мекенжайлар болуы керек.

Мысалдар

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

permissionopen = «10.2.1.55:80», permopen = «10.2.1.56:25» 1024 33 23 ... 2323

Ssh_Known_Hosts файл пішімі

/ Etc / ssh / ssh_known_hosts және $ HOME / .ssh / known_hosts файлдары барлық белгілі хосттар үшін ортақ кілттерді қамтиды. Жаһандық файлды әкімші дайындауы керек (міндетті емес) және пайдаланушыға арналған файл автоматты түрде сақталады: пайдаланушы белгісіз хосттан қосылса, оның әр пайдаланушының файлына қосылады.

Бұл файлдардағы әрбір жол келесі өрістерді қамтиды: хост атауы, бит, экспонент, модуль, түсініктеме. Өрістер бос орындармен бөлінеді.

Хост аттары үлгілердің үтірмен бөлінген тізімі болып табылады ('*' және '?' Қойылмалы таңбалар ретінде қолданылады); әрбір үлгі өз кезегінде канондық хост атына (клиентті аутентификациялау кезінде) немесе пайдаланушы арқылы берілген атаумен (серверді растау кезінде) сәйкес келеді. Үлгінің алдында '!' Терістеуді көрсету үшін: хост атауы терістеу үлгісіне сәйкес келсе, ол жолда басқа үлгіге сәйкес келсе де (ол бойынша) қабылданбайды.

Бита, экспонент және модуль тікелей RSA хост-кілтінен алынады; оларды /etc/ssh/ssh_host_key.pub мекен-жайынан алуға болады. Қосымша түсініктеме жолағы жолдың соңына дейін жалғасады және пайдаланылмайды.

'#' Және бос жолдардан басталатын сызықтар ескертпелер ретінде еленбейді.

Хост түпнұсқалық растамасын орындағанда аутентификация тиісті жолда сәйкес келгенде қабылданады. Осындай аттар үшін бірнеше жол немесе әртүрлі хосттар болуы рұқсат етіледі (бірақ ұсынылмайды). Бұл әр түрлі домендерден хост аттарының қысқа формалары файлға қойылған кезде сөзсіз орын алады. Файлдарда қайшы келетін ақпарат болуы мүмкін; түпнұсқалық растау қабылданады, егер жарамды ақпарат екі файлдан да табылса.

Бұл файлдағы сызықтар, әдетте, жүздеген таңбалар болып табылады және сіз хост түймелерін қолмен тергіңіз келмейді. Керісінше, оларды сценарий арқылы жасаңыз немесе /etc/ssh/ssh_host_key.pub жолымен алыңыз және хост атауын алдыңғы жағына қосыңыз.

Мысалдар

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

Сондай-ақ, қараңыз

scp (1), sftp (1), ssh (1), ssh-add1, ssh-agent1, ssh-keygen1, login.conf5, модуль (5), sshd_config5, sftp-server8

T. Ylonen T. Kivinen M. Saarinen T. Rinne S. Lehtinen «SSH хаттамалық сәулет» draft-ietf-secsh-architecture-12.txt қаңтар 2002 материал жұмыс істейді

М.Фридл Н. Провос В.А. Симпсон «SSH көліктік деңгейдегі хаттамаға арналған Diffie-Hellman Group Exchange» жобасы draft-ietf-secsh-dh-group-exchange-02.txt қаңтар 2002 ж.

Маңызды: Жеке компьютерде пәрменді қалай пайдалану керектігін көру үшін man ( % man ) пәрменін пайдаланыңыз.