Linux / Unix Каманда: SSHD

імя

SSHD - OpenSSH SSH - дэман

канспект

SSHD [- deiqtD46] [- б біт] [- F файл_конфигурации] [- г login_grace_time] [- ч host_key_file] [- да key_gen_time] [- пра опцыі] [- р порт] [- і LEN]

апісанне

SSHD (SSH Daemon) гэта праграма - дэман для SSH (1). Разам гэтыя праграмы замяняюць Rlogin і RSH, а таксама забяспечыць бяспечнае зашыфраванае злучэнне паміж двума ненадзейнымі хастамі праз неабароненую сетку. Гэтыя праграмы прызначаныя для быць лёгка ўсталяваць і выкарыстоўваць, наколькі гэта магчыма.

SSHD гэта дэман , які чакае злучэння ад кліентаў. Гэта звычайна запускаецца пры загрузцы з / і г.д. / RC ён спараджае новы дэман для кожнага ўваходнага злучэння. Расшчэпленыя дэманы апрацоўваць абмен ключоў, шыфраванне, аўтэнтыфікацыю, выкананне каманд і абмен дадзеных. Гэтая рэалізацыя SSHD падтрымлівае SSH пратакол версіі 1 і 2 адначасова.

Пратакол SSH версіі 1

Кожны вузел мае машына-залежны ключ RSA (звычайна 1024 біт), які выкарыстоўваецца для ідэнтыфікацыі хаста. Акрамя таго, пры запуску дэмана, ён генеруе ключ RSA-сервера (звычайна 768 біт). Гэты ключ звычайна рэгенеруецца кожную гадзіну, калі ён быў выкарыстаны, і ніколі не захоўваецца на дыску.

Кожны раз, калі кліент падключаецца дэман адказвае яго адкрытым ключы хаста і сервера. Кліент параўноўвае ключ хаста RSA з уласнай базай дадзеных, каб пераканацца, што яна не змянілася. Затым кліент генеруе 256-бітнае выпадковы лік. Ён шыфруе гэта выпадковае лік, выкарыстоўваючы як ключ хаста і ключ сервера і пасылае зашыфраванае лік на сервер. Абодва бакі затым выкарыстоўваць гэта выпадковы лік у якасці ключа сеансу, які выкарыстоўваецца для шыфравання ўсіх далейшых паведамленняў у сесіі. Астатняя частка сеансу шыфруецца з дапамогай звычайнага шыфра, у цяперашні час Blowfish або 3DES, з 3DES выкарыстоўваецца па змаўчанні. Кліент выбірае алгарытм шыфравання для выкарыстання ад прапанаванага сервера.

Затым сервер і кліент ўвесці дыялог аўтэнтыфікацыі. Кліент спрабуе аўтэнтыфікаваных сябе з дапамогай аўтэнтыфікацыі .rhosts, .rhosts аўтэнтыфікацыі ў спалучэнні з праверкай сапраўднасцю RSA - гаспадаром, аўтэнтыфікацыяй запыту-адказ RSA ці аўтэнтыфікацыяй на аснове пароля .

Аўтэнтыфікацыя Rhosts звычайна адключаная, таму што гэта прынцыпова небяспечна, але можа быць уключана ў канфігурацыйным файле сервера, калі гэта неабходна. Сістэма бяспекі не паляпшаецца , калі РСХД rlogind і rexecd адключаныя ( пры гэтым цалкам адключыць Rlogin і RSH ў машыну).

Пратакол SSH версіі 2

Версія 2 працуе аналагічна: Кожны вузел мае ключ машына-залежны (RSA ці DSA), які выкарыстоўваецца для ідэнтыфікацыі хаста. Аднак, пры запуску дэмана, ён не генеруе ключ сервера. Форвард бяспека забяспечваецца за кошт ўзгаднення ключа Диффи-Хеллмана. Гэты ключ пагадненне прыводзіць да агульнага ключу сеансу.

Астатняя частка сеансу шыфруецца з выкарыстаннем сіметрычнага шыфра, у цяперашні час 128-бітнае AES, Blowfish, 3DES, CAST128, Arcfour, 192 бітнае AES або 256 біт AES. Кліент выбірае алгарытм шыфравання для выкарыстання ад прапанаванага сервера. Акрамя таго, цэласнасць сеансу забяспечваецца праз крыптаграфічны код аўтэнтыфікацыі паведамленні (HMAC-SHA1 або HMAC-MD5).

Пратакол версія 2 менюоснованной карыстальніка адкрытага ключа (PubkeyAuthentication) або кліенцкі хост (HostbasedAuthentication) метад аўтэнтыфікацыі, звычайны пароль і выклік-адказ метаду, заснаваная.

Выкананне каманд і дадзеных Forwarding

Калі кліент паспяхова праходзіць праверку сапраўднасці, дыялог для падрыхтоўкі сеансу ўводу. У гэты час кліент можа запытаць такія рэчы, як вылучэнне псеўда-тэрмінал, перадаючы злучэння X11, пераадрасацыі TCP / IP злучэння, або перасылка злучэння агента аўтэнтыфікацыі праз абаронены канал.

Нарэшце, кліент альбо запытвае абалонку або выкананне каманды. Боку затым ўвайсці ў рэжым сеансу. У гэтым рэжыме, любая бок можа перадаваць дадзеныя ў любы час, і такія дадзеныя перадаюцца ў / з абалонкі або каманд на боку сервера, і карыстацкі тэрмінал на баку кліента.

Калі праграма карыстальніка завяршаецца і перанакіраваная X11 і іншыя злучэнні былі зачыненыя, сервер пасылае статус завяршэння каманды кліента і абодва бакі выхаду.

SSHD можна наладзіць з дапамогай параметраў каманднага радка або файла канфігурацыі. Параметры каманднага радка перавызначаць значэння, зададзеныя ў канфігурацыйным файле.

SSHD перачытвае свой канфігурацыйны файл , калі ён атрымлівае сігнал завісання, SIGHUP, выканаўшы сябе з імем ён быў запушчаны , як, напрыклад, / USR / SBIN / SSHD

Варыянты наступныя:

-b біты

Вызначае лік біт у эфемерныя пратаколе версія 1 ключ сервера (па змаўчанні 768).

-d

Рэжым адладкі. Сервер адпраўляе падрабязны вывад адладкі ў сістэмны часопіс і не ставіць сябе ў фонавым рэжыме. Акрамя таго, сервер не будзе працаваць, і будзе апрацоўваць толькі адно злучэнне. Гэтая опцыя прызначана толькі для адладкі сервера. Некалькі -d опцыі павышаюць узровень адладкі. Максімум гэта 3.

-e

Калі указана гэтая опцыя, SSHD пашле выснову на стандартную памылку , замест сістэмнага часопіса.

-f файл_конфигурации

Задае імя файла канфігурацыі. Па змаўчанні / і г.д. / SSH / sshd_config SSHD адмаўляецца пачынаць , калі няма файла канфігурацыі.

-g login_grace_time

Дае час адтэрміноўкі для кліентаў, каб аўтэнтыфікаваных сябе (па змаўчанні 120 секунд). Калі кліент не для аўтэнтыфікацыі карыстача на працягу гэтай колькасці секунд, раз'яднальнікаў сервераў і выхадаў. Нулявое значэнне паказвае на адсутнасць мяжы.

-h host_key_file

Вызначае файл, з якога счытваецца ключ хаста. Гэтая опцыя павінна быць прадастаўлена , калі SSHD не запускаецца ў якасці кораня (як нармальны хост ключавых файлаў , як правіла , не даступныя для чытання толькі корань). Па змаўчанні / і г.д. / SSH / ssh_host_key для пратаколу версіі 1, і / і г.д. / SSH / ssh_host_rsa_key і / і г.д. / SSH / ssh_host_dsa_key для пратаколу версіі 2. Можна мець некалькі файлаў ключоў хастоў для розных версій пратаколу і ключа хаста алгарытмы.

-i

Паказвае , што SSHD бежится ад INETD. SSHD звычайна не запускаецца з INETD , таму што ён павінен генерыраваць ключ сервера , перш чым ён можа адказаць кліенту, і гэта можа заняць некалькі дзясяткаў секунд. Кліенты павінны чакаць занадта доўга, калі ключ быў рэгенеруецца кожны раз. Тым ня менш, з невялікімі памерамі ключавых (напрыклад, 512) з выкарыстаннем SSHd з INETD можа быць здзяйсняльна.

-k key_gen_time

Вызначае, як часта эфемерны пратакол версіі 1 ключ сервера рэгенеруецца (па змаўчанні 3600 секунд, або адзін гадзіну). Матывацыя для рэгенерацыі ключа даволі часта з'яўляецца тое, што ключ нідзе не захоўваецца, а прыкладна праз гадзіну, становіцца немагчымым аднавіць ключ для расшыфроўкі перахопленых паведамленняў, нават калі машына трэснутая ў або фізічна канфіскаванай. Нулявое значэнне паказвае на тое, што ключ ніколі не будзе адноўлены.

опцыя -o

Можа быць выкарыстаны для параметраў у фармаце, выкарыстоўваным у файле канфігурацыі. Гэта карысна для вызначэння параметраў, для якіх няма асобнага сцяга каманднага радка.

-p порт

Вызначае порт, на якім сервер праслухоўвае злучэння (па змаўчанні 22). Некалькі варыянтаў партоў дапускаюцца. Парты, названыя ў файле канфігурацыі, ігнаруюцца, калі паказаны порт каманднага радка.

-q

Ціхі рэжым. Нішто не пасылаецца ў сістэмны часопіс. Звычайна пачатак, аўтэнтыфікацыя і завяршэнне кожнага злучэння рэгіструюцца.

-t

Тэставы рэжым. Толькі праверыць правільнасць канфігурацыйнага файла і стан сьвядомасьці ключоў. Гэта карысна для абнаўлення SSHd надзейна , як параметры канфігурацыі могуць змяняцца.

-u Len

Гэты параметр выкарыстоўваецца для ўказанні памеру поля ў структуры utmp , якая ўтрымлівае імя аддаленага хаста. Калі дазволенае імя хаста даўжэй даўжыня пункцірнай дзесятковы значэнне будзе выкарыстоўвацца замест гэтага. Гэта дазваляе гаспадарам з вельмі доўгімі імёнамі хастоў, што захапляе гэта поле, каб па-ранейшаму быць адназначна вызначаны. Ўказанне - u0 азначае , што толькі пункцірны дзесятковы адрас павінен быць змешчаны ў файл utmp. - u0 таксама выкарыстоўвацца для прадухілення SSHd ад стварэння запытаў DNS , калі механізм праверкі сапраўднасці або канфігурацыі не патрабуе. Механізмы аўтэнтыфікацыі , якія могуць запатрабаваць DNS ўключаюць RhostsAuthentication RhostsRSAAuthentication HostbasedAuthentication і выкарыстоўваючы з = мадэльнага спісу опцыі ў ключавым файле. Параметры канфігурацыі , якія патрабуюць DNS ўключаюць выкарыстанне USER @ HOST шаблон у AllowUsers або DenyUsers

-D

Калі указана гэтая опцыя SSHD не аддзяліцца і не становіцца дэманам. Гэта дазваляе лёгка кантраляваць SSHD

-4

Сілы Sshd выкарыстоўваць толькі IPv4 адрасы.

-6

Сілы Sshd выкарыстоўваць толькі IPv6 - адрасы.

файл канфігурацыі

SSHD счытвае канфігурацыйныя дадзеныя з / і г.д. / SSH / sshd_config (ці ў файл , названы с - F у камандным радку). Параметры фармату файлаў і канфігурацыі апісаны ў sshd_config5.

увайсці Працэс

Калі карыстальнік паспяхова ўваходзіць у сістэму , SSHD выконвае наступныя дзеянні :

  1. Калі Увайсці знаходзіцца на тэлетайп, і ні адна каманда мае зададзенай, друкуе апошні час уваходу і / і г.д. / MOTD (калі не папярэджана ў файле канфігурацыі або $ HOME / .hushlogin глядзіце раздзел Sx ФАЙЛЫ).
  2. Калі Увайсці знаходзіцца на тэлетайп, запісы ўваходу ў сістэму часу.
  3. Праверкі / і г.д. / NOLOGIN калі яна існуе, друкуе змесціва і ня выйдзе (калі корань).
  4. Змены для запуску са звычайнымі карыстацкімі прывілеямі.
  5. Ўсталёўвае базавую асяроддзе.
  6. Счытвае $ HOME / .ssh / навакольнае асяроддзе, калі яна існуе, і карыстальнікі могуць змяняць сваё асяроддзе. Глядзіце опцыю PermitUserEnvironment ў sshd_config5.
  7. Змены ў хатнім каталогу карыстальніка.
  8. Калі $ HOME / .ssh / гс існуе, запускае яго; інакш, калі / і г.д. / SSH / SSHRC існуе, запускае яго; у адваротным выпадку выконваецца XAUTH. У «файлов`` радыёкіраваныя "прыведзены пратакол аўтэнтыфікацыі Х11 і печыва ў стандартным ўводзе.
  9. Запуск абалонкі карыстальніка або каманды.

Authorized_keys Фармат файла

$ HOME / .ssh / authorized_keys файл па змаўчанні , які змяшчае спіс адкрытых ключоў, якія дазволеныя для аўтэнтыфікацыі RSA ў пратаколе версіі 1 і для праверкі сапраўднасці адкрытага ключа (PubkeyAuthentication) у пратаколе версіі 2. AuthorizedKeysFile можа быць выкарыстаны для ўказанні альтэрнатыўнага файла.

Кожны радок файла ўтрымлівае адзін ключ (пустыя радкі і радкі, якія пачынаюцца з `#», ігнаруюцца як каментары). Кожны адкрыты ключ RSA складаецца з наступных палёў, падзеленых прабеламі: варыянты, біты, экспанент, модуль, каментар. Кожная версія пратаколу 2 адкрыты ключ складаецца з: варыянтаў, KeyType, base64 закадаванай ключа, каментара. Поле опцый не з'яўляецца абавязковым; яго прысутнасць вызначаецца, пачынаецца Ці радок з нумарам ці не (поле опцый ніколі не пачынаецца з лічбы). Біты, экспаненты, модуль і каментар поля даюць ключ RSA для пратаколу версіі 1; Каментар поле не выкарыстоўваецца ні для чаго (а можа быць зручна для карыстальніка, каб ідэнтыфікаваць ключ). Для пратаколу версіі 2, KeyType з'яўляецца `` SSH-ДСС '' ці `` SSH-RSA ''

Звярніце ўвагу , што радкі ў гэтым файле, як правіла , некалькі сотняў байт даўжынёй (з - за памеру кадавання адкрытага ключа). Вы не хочаце, каб увесці іх у; замест гэтага, скапіруйце identity.pub id_dsa.pub альбо выяву id_rsa.pub і рэдагаваць яго.

SSHD прымяняе мінімальны памер ключа RSA модуль для пратаколу 1 і пратаколу 2 ключа ў 768 біт.

Параметры (калі яны прысутнічаюць) складаюцца з падзеленай коскі спецыфікацый опцый. Прабелы не дапускаюцца, за выключэннем у падвойных двукоссях. Наступныя спецыфікацыі опцыі падтрымліваюцца (звярніце ўвагу, што варыянт ключавыя словы неадчувальныя да рэгістра):

з = мадэльнага спісу

Паказвае, што ў дадатак да аўтэнтыфікацыі з адкрытым ключом, кананічнае імя аддаленага хаста, павінны прысутнічаць у падзеленых коскамі спіс шаблонаў ( '* «і'?» Служаць у якасці маскі). Спіс можа таксама ўтрымліваць ўзоры адмаўляецца папярэднічаючы іх з `!» ; калі кананічнае імя хаста супадае з адмаўленнем шаблону, ключ не прымаюцца. Мэта гэтага варыянту складаецца ў дадаткова павялічыць бяспеку: адкрыты ключ аўтэнтыфікацыі сама па сабе не давярае сеткі або серверы імёнаў ці што-небудзь (але ключ); Аднак, калі хто-то як-то крадзе ключ, ключ дазваляе зламысніку увайсці ў сістэму з любой кропкі свету. Гэтая дадатковая опцыя дазваляе выкарыстоўваць скрадзены ключ больш складаныя (серверы імёнаў і / або маршрутызатары павінны быць скампраметаваныя у дадатак да толькі ключ).

Каманда = каманда

Паказвае, што каманда выконваецца кожны раз, калі гэты ключ выкарыстоўваецца для праверкі сапраўднасці. Каманда пастаўляецца карыстальнікам (калі такое маецца) ігнаруецца. Каманда выконваецца на PTY, калі кліент запытвае PTY; у адваротным выпадку яна выконваецца без тэрмінала. Калі патрабуецца 8-бітнымі канал, адзін не павінен запытваць ці не PTY варта пазначыць не-PTY Каціроўка можа быць уключаны ў каманду, працытаваўшы яго з дапамогай зваротнай касой рысы. Гэтая опцыя можа быць карысная для абмежавання вызначаных адкрытых ключоў для выканання толькі канкрэтнай аперацыі. Прыклад можа быць ключом, які дазваляе выдаленае рэзервовае капіраванне, але нічога. Звярніце ўвагу, што кліент можа паказаць TCP / IP і / або перанакіраванне X11, калі яны не будуць відавочна забароненыя. Звярніце ўвагу, што гэтая опцыя ставіцца да абалонцы, каманды або выканання падсістэмы.

серада = ІМЯ = значэнне

Паказвае, што радок павінна быць дададзеная ў навакольнае асяроддзе пры ўваходзе ў сістэму з дапамогай гэтага ключа. Зменныя асяроддзі, устаноўленыя такім чынам перавызначыць іншыя значэнні акружэння па змаўчанні. Некалькі варыянтаў гэтага тыпу дапускаюцца. Навакольнае асяроддзе апрацоўкі адключаная па змаўчанні і кантралюецца з дапамогай опцыі PermitUserEnvironment. Гэтая опцыя аўтаматычна адключаецца , калі UseLogin ўключана.

нет-пераадрасацыі партоў

Забараняе TCP / IP пераадрасацыю, калі гэты ключ выкарыстоўваецца для праверкі сапраўднасці. Любы порт перанакіроўвае запыты ад кліента вяртае памылку. Гэта можа быць выкарыстана, напрыклад, у сувязі з параметрам каманднага радка.

нет-X11-экспедытарскіх

Забараняе перанакіраванне Х11, калі гэты ключ выкарыстоўваецца для праверкі сапраўднасці. Любыя Х11 перанакіроўваюць запыты ад кліента вяртае памылку.

няма-агент пераадрасацыі

Забараняе аўтэнтыфікацыі форвардинг агента, калі гэты ключ выкарыстоўваецца для праверкі сапраўднасці.

нет-псевдотерминал

Прадухіляе вылучэнне тэрмінальнага (запыт на вылучэнне PTY не атрымаецца).

permitopen = хост: порт

Абмежаваць лакальны `` SSH -L «» пераадрасацыі партоў , так што ён можа падлучацца толькі да згаданага вузлу і порту. IPv6 - адрас можа быць паказаны з альтэрнатыўным сінтаксісам: хост / порт Некалькі permitopen варыянтаў могуць быць ужытыя праз коску. Няма супастаўлення з узорам не выконваецца на названых імёнаў хастоў, то яны павінны быць у літаральным сэнсе дамены або адрасы.

прыкладаў

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

ад = "*. niksula.hut.fi ,! pc.niksula.hut.fi" 1024 35 23 ... 2334 ыло @ niksula

Каманда = "звалка / дома", не-псевдотерминал, няма-пераадрасацыі партоў 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 Фармат файла

/ І г.д. / 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 closenet.hut.fi cvs.openbsd.org, 199.185.137.3 SSH-AAAA1234 ..... RSA =

Глядзіце таксама

УПП (1), SFTP (1), SSH (1), SSH-add1, SSH-agent1, SSH-keygen1, login.conf5, модулі (5), sshd_config5, SFTP-server8

Т. Ілона Т. М. Kivinen Саарынен Т. С. Ринне Lehtinen «Пратакол SSH Архітэктура» праект-IETF-secsh-архітэктуры 12.txt студзеня 2002 праца ў ходзе матэрыялу

М. Н. Фрыдла Provos WA Сімпсан «Диффи-Хеллмана Група абмену для пратаколу SSH Transport Layer» праект-IETF-secsh-дк-гурт абменнымі 02.txt студзеня 2002 праца ў ходзе матэрыялу

Важна: Выкарыстоўвайце каманду чалавека (%) чалавек , каб паглядзець , як каманда выкарыстоўваецца на вашым канкрэтным кампутары.