Linux / Unix Command: sshd

Adı

sshd - OpenSSH SSH daemon

Sinopsis

sshd [- deiqtD46 ] [- b bit ] [- f config_file ] [- g giriş_grace_time ] [- h host_key_file ] [- k key_gen_time ] [- o variant ] [- p port ] [- u len ]

Təsvir

sshd (SSH Daemon) ssh (1) üçün daemon proqramıdır . Birlikdə bu proqramlar rlogin əvəz rsh və təhlükəsiz bir şəbəkə üzərində iki etibarsız ev sahibi arasında təhlükəsiz şifrli əlaqə təmin edir. Proqramların qurulması və mümkün qədər asan istifadə edilməsi nəzərdə tutulur.

sshd müştərilərdən əlaqələr dinləyən daemondur . Normal olaraq / etc / rc-dan açılışda başlanır. Hər bir gələn əlaqə üçün yeni bir domen çəkir. Çağırılmış simalar, əsas dəyişiklik, şifrələmə, autentifikasiya, komandanın icrası və məlumat mübadiləsi ilə məşğul olur. SSH-nin bu tətbiqi eyni zamanda SSH protokolu versiyası 1 və 2- ni dəstəkləyir.

SSH Protokolu Versiya 1

Hər bir ana kompyuter ev sahibini müəyyən etmək üçün istifadə edilən xüsusi bir RSA anahtarı (adətən 1024 bit) var. Bundan əlavə, daemon başlayanda, bir server RSA anahtarı yaradır (normalda 768 bit). Bu əsas istifadə edilən hər saat normal olaraq bərpa edilir və diskdə heç vaxt saxlanmır.

Bir müştəri daemonu birləşdirən zaman ümumi server və server düymələri ilə cavab verir. Müştəri dəyişməmiş olduğunu doğrulamak üçün RSA ev sahibi əsasını öz verilənlər bazasına qarşı müqayisə edir. Müştəri daha sonra 256 bit təsadüfi sayını yaradır. Bu təsadüfi sayını həm ana və server açarı ilə şifrələyir, həm də serverə şifreli nömrəni göndərir. Hər iki tərəf daha sonra bu təsadüfi sayını iclasında bütün digər ünsiyyətləri şifrələmək üçün istifadə olunan bir seans açarı kimi istifadə edir. Sessiyanın qalan hissəsi, 3DES-lərin default olaraq istifadə edilməklə, şərti şifrəni, hazırda Blowfish və 3DES-lərdən istifadə etməklə şifrələnir. Müştəri server tərəfindən təklif olunan şifrələmə alqoritmini seçir.

Sonra, server və müştəri bir identifikasiya informasiya qutusuna daxil olur. Müştəri RSA host identifikasiyası, RSA çağırışına qarşı cavab identifikasiyası və ya parol əsaslı identifikasiyası ilə birləşdirilmiş .hosts identifikasiyası, .rhosts identifikasiyası ilə özünü doğrulmağa çalışır.

Rhosts kimlik doğrulaması, əsasən etibarsızdır, ancaq istənilən halda server konfiqurasiya faylında aktivləşdirilə bilər. Rshd rlogind və rexecd (beləliklə rlogin və rsh maşınları tamamilə aradan bırakır) aradan qaldırılmadıqda sistem təhlükəsizlik yaxşılaşdırılmır.

SSH Protokolu Versiya 2

Versiyası 2 eyni şəkildə işləyir: Hər bir ana kompyuter ev sahibini müəyyənləşdirmək üçün istifadəçiyə xüsusi bir əsas (RSA və ya DSA) malikdir. Lakin, daemon başlayanda, bir server açarı yaratmır. İrəli təhlükəsizlik Diffie-Hellman əsas müqaviləsi vasitəsilə təmin edilir. Bu əsas müqavilə paylaşılan bir seans açar.

Sessiyanın qalan hissəsi hazırda 128 bit AES, Blowfish, 3DES, CAST128, Arcfour, 192 bit AES və ya 256 bit AES ilə simmetrik şifrə ilə şifrələnir. Müştəri server tərəfindən təklif olunan şifrələmə alqoritmini seçir. Bundan əlavə, sessiyanın bütövlüyü bir kriptoqrafik mesaj identifikasiyası kodu (hmac-sha1 və ya hmac-md5) vasitəsilə təmin edilir.

Protokolun 2 versiyası ümumi açar əsaslı istifadəçi (PubkeyAuthentication) və ya müştəri hostu (HostbasedAuthentication) identifikasiyası üsulu, şərti parol identifikasiyası və çağırışa cavab vermə üsulları təmin edir.

Komanda icrası və məlumat ötürülməsi

Müştəri müvəffəqiyyətlə özünü təsdiqləsə, sessiyanın hazırlanmasına dair bir dialoq daxil edilir. Bu zaman müştəri bir ssenarinin, X11 əlaqələrinin ötürülməsini, TCP / IP əlaqələrinin köçürülməsini və ya təhlükəsiz kanal üzərində identifikasiya agenti əlaqəsinin ötürülməsini tələb edə bilər.

Nəhayət, müştəri ya bir əmr və ya bir komanda icra tələb edir. Tərəflər oturum rejiminə daxil olurlar. Bu rejimdə hər hansı bir məlumat hər hansı bir zamanda göndərə bilər və bu məlumatlar server tərəfindəki kabuk və ya komandan və müştəri tərəfindəki istifadəçi terminalından ötürülür.

Istifadəçi proqramı sona çatdıqda və bütün X11 və digər əlaqələrin ötürülməsi bağlanıldığında, server müştəriyə komanda çıxış vəziyyəti göndərir və hər iki tərəf çıxış edir.

sshd command-line variantları və ya konfiqurasiya faylları ilə konfiqurasiya edilə bilər. Komut satırı variantları konfiqurasiya faylında göstərilən dəyərləri köçürür.

sshd , siqnalı bir siqnalı aldıqda konfiqurasiya faylını təkrarlayır , SIGHUP isə özünü başlanğıc adı ilə yerinə yetirir, yəni, / usr / sbin / sshd

Seçimlər aşağıdakılardır:

-b bits

Ephemeral protokol versiyası 1 server düyməsindəki bit sayını müəyyən edir (default 768).

-d

Hata ayıklama rejimi. Server, sistem yaddaşına doğru debug çıxışını göndərir və arxa planda yerləşdirilmir. Server də işləməyəcək və yalnız bir əlaqəni işləyəcəkdir. Bu seçim yalnız server üçün ayıklama üçün nəzərdə tutulub. Birdən çox variantları diskussiya səviyyəsini artırır. Maksimum 3 dir.

-e

Bu seçim müəyyən edildikdə, sshd sistem günlüğüne yerine standart hataya göndərir.

-f configuration_file

Konfiqurasiya faylının adını bildirir. Sifariş / etc / ssh / sshd_config sshd heç bir konfiqurasiya faylı olmasa başlamağı rədd edir.

-g login_grace_time

Müştərilərin özünü doğrulaması üçün lütf vaxtını verir (default 120 saniyə). Mütəxəssis bir neçə saniyə ərzində istifadəçiyi doğrulamaması halında, server kəsilir və çıxır. Sıfır dəyəri heç bir məhdudiyyət göstərmir.

-h host_key_file

Bir ana düymə oxunan bir fayl müəyyən edir. Sshd kök kimi işləmədiyi halda bu seçim verilməlidir (normal ana əsas faylları normal olaraq hər kəs tərəfindən deyil, kökdən oxunmur). Varsayılan protokol versiyası 1 / etc / ssh / ssh_host_key və / etc / ssh / ssh_host_rsa_key və protokol versiyası üçün / etc / ssh / ssh_host_dsa_key. Müxtəlif protokol versiyaları və host key alqoritmlər.

-i

Sshd inetd- dən çalıştırılacağını belirtir . sshd normal olaraq inetd-də işləmir , çünki müştəriyə cavab verməzdən öncə server açarı yaratmaq lazımdır və bu, on saniyə çəkə bilər. Açar hər dəfə bərpa olunarsa, müştərilər çox uzun gözləməlidirlər. Bununla belə, inetd- dən sshd - ni istifadə edərək, kiçik düymələrlə (məsələn, 512) mümkün ola bilər.

-k key_gen_time

Efemer protokol versiyası 1 server anahtarı nə qədər tez-tez regenerasiya edildiyini müəyyən edir (default 3600 saniyə və ya bir saat). Açarı yeniləmək üçün kifayət qədər tez-tez əsas heç bir yerdə saxlanılmır və təxminən bir saat sonra, maşının çatdığı və ya fiziki şəkildə ələ keçirildiyi hallarda, intercepted əlaqələrin şifrələməsinin açarını geri qaytarmaq mümkün olmayır. Sıfır dəyəri, açarın heç vaxt yenilənməyəcəyini göstərir.

-O seçimi

Konfiqurasiya faylında istifadə edilən formatda variantlar vermək üçün istifadə edilə bilər. Bu, ayrı bir command-line bayraq olmadığı variantları göstərmək üçün faydalıdır.

-p limanı

Server, bağlantılar üçün dinləyən portu (default 22) bildirir. Birdən çox port variantına icazə verilir. Konfiqurasiya faylında göstərilən portlar bir komanda xətti portu göstərildikdə nəzərə alınmır.

-q

Səssiz rejim. Sistem günlüğüne heç bir şey göndərilmir. Normalda hər bir əlaqənin başlanğıcı, təsdiqlənməsi və sona çatması qeyd olunur.

-t

Test rejimi. Yalnız konfiqurasiya faylının düzgünlüyünü və düymələrin ağılını yoxlayın. Bu, konfiqurasiya variantlarının dəyişə biləcəyi kimi sshd-ni yeniləmək üçün faydalıdır.

-u len

Bu seçim uzaq host adı saxlayan utmp strukturunda sahənin ölçüsünü təyin etmək üçün istifadə olunur. Qarşıya salınan ana bilgisayar adı len'den daha uzunsa nokta ondalık değeri kullanılır. Bu, bu sahəni hələ də unikal şəkildə müəyyənləşdirməyə imkan verən çoxsaylı host adları olan ev sahiblərinə imkan verir. Göstərin - u0 göstərir ki, yalnız nöqtəli decimal ünvanları utmp faylına qoyulmalıdır. - u0 , autentifikasiya mexanizmi və ya konfiqurasiya tələb etmədiyi halda SSH -nin DNS sorğusunun qəbul edilməsinin qarşısını almaq üçün istifadə olunur. DNS-i tələb edə bilən doğrulama mexanizmləri RhostsAuthentication RhostsRSAAuthentication HostbasedAuthentication və bir əsas faylda bir = nümunə siyahısı seçimi istifadə edir. DNS tələb edən konfiqurasiya variantları AllowUsers və ya DenyUsers-da USER @ HOST modelini istifadə edir

-D

Bu seçim müəyyən edildikdə sshd ayrılmayacaq və bir daemon olmayacaq. Bu sshd-nin asanlıqla monitorinqini təmin edir

-4

Yalnızca IPv4 ünvanlarını istifadə etmək üçün sshd qüvvələri.

-6

IPv6 ünvanlarını yalnız sshd istifadə edəcəklər .

Konfiqurasiya faylı

sshd , / etc / ssh / sshd_config (ya da komanda satırında - f ilə göstərilən fayl) dan konfiqurasiya məlumatlarını oxuyur. Fayl formatı və konfiqurasiya variantları sshd_config5-də təsvir edilmişdir.

Giriş prosesi

Bir istifadəçi uğurla daxil olduqda, sshd aşağıdakıları edir:

  1. Giriş bir ttydədirsə və heç bir komanda göstərilməyibsə, son giriş saatı və / etc / motd yazılır (konfiqurasiya faylında və ya $ HOME / .hushlogin ilə Sx FILES bölməsinə baxın).
  2. Giriş girişdədirsə, qeydiyyatdan keçmə vaxtı yazılır.
  3. Mövcudluğunu yoxlamaq / etc / nologin, məzmunu və buraxmalarını (kök olmadan) təzələyir.
  4. Normal istifadəçi güzəştləri ilə işləmək üçün dəyişikliklər.
  5. Əsas mühiti müəyyənləşdirir.
  6. Mövcud olduğu halda, $ HOME / .ssh / ətraf mühitini oxuyur və istifadəçilər ətraf mühitini dəyişməyə icazə verilir. Sshd_config5-PermitUserEnvironment seçiminə baxın.
  7. İstifadəçinin ev qovluğuna dəyişiklik edilir.
  8. $ HOME / .ssh / rc varsa, işləyir; əgər / etc / ssh / sshrc varsa, başqa bir şeydir; əks halda xauth çalışır. 'Rc' faylları standart girişdə X11 identifikasiyası protokolu və çerez verilir.
  9. İstifadəçinin qabığını və ya əmrini işlədir.

Authorized_Keys fayl formatı

$ HOME / .ssh / authorized_keys protokol versiyası 1-də RSA identifikasiyası üçün icazə verilən ümumi düymələri və protokol versiyası 2-də ümumi açar identifikasiyası (PubkeyAuthentication) üçün nəzərdə tutulan default fayldır. AuthorizedKeysFile alternativ bir fayl müəyyən etmək üçün istifadə edilə bilər.

Dosyanın hər bir xətti bir düyməni (boş xətlər və '#' ilə başlayan xətləri şərh kimi nəzərə alınmır) ehtiva edir. Hər RSA ictimai anahtarı boşluqla ayrılmış aşağıdakı sahələrdən ibarətdir: variantlar, bitlər, eksponent, modul, şərh. Hər bir protokol versiyası 2 ümumi anahtardan ibarətdir: variantlar, keytype, base64 kodlanmış əsas, şərh. Seçim sahələri isteğe bağlıdır; onun mövcudluğu xəttin bir sıra ilə başlayıb-açılmadığına görə müəyyən edilir (variantlar sahəsində heç bir zaman başlamaz). Bits, eksponent, modul və şərh sahələri protokol versiyası 1 üçün RSA düyməsini verir; şərh sahəsi heç bir şey üçün istifadə edilmir (lakin istifadəçi açarı müəyyən etmək üçün rahat ola bilər). Protokol versiyası 2 üçün əsas növü `` ssh-dss '' və ya `` ssh-rsa ''

Qeyd edək ki, bu fayldakı xətlər adətən bir neçə yüz bayt uzunluqdadır (ümumi açar kodunun ölçüsündən ötəri). Onları yazmaq istəmirsiniz; əvəzinə identifikasiya.pub id_dsa.pub və ya id_rsa.pub faylını kopyalayın və onu redaktə edin.

sshd, protokol 1 üçün minimum RSA əsas modul ölçüsünü və 768 bitlik protokolun 2 düyməsini tətbiq edir.

Seçimlər (əgər varsa) virgülle ayrılmış opsiyanın xüsusiyyətlərindən ibarətdir. İki sütun daxilində istisna olmaqla boşluqlara icazə verilmir. Aşağıdakı seçim parametrləri dəstəklənir (seçimi açar sözlər, böyük-kiçikdir).

= nümunə siyahısından

Açar açıq kimlik doğrulamasına əlavə olaraq, uzaq hostun kanonik adı virgülle ayrılmış nümunələr siyahısında olmalıdır ('*' və '?' Joker kart kimi xidmət edir). Siyahıda ayrıca `` `ilə prefixing tərəfindən inkar edilmiş nümunələr də ola bilər. ; Kanonik ana adı bir negativ nümunə uyğun gəlsə, açar qəbul edilmir. Bu seçimin məqsədi isteğe bağlı olaraq təhlükəsizliyin artırılmasıdır: ictimai açarın özünü doğrulaması özü tərəfindən şəbəkəyə və ya adı serverlərə və ya bir şeyə (amma əsas) etibar etməz; Ancaq birisi bir şəkildə açarı oğurlayırsa, açar dünyanın hər hansı bir yerindən daxil olmağına icazə verir. Bu əlavə seçim oğurlanmış bir düyməni daha çətinləşdirir (adı server və / və ya marşrutlaşdırıcılar yalnız əsasa əlavə olaraq təhlükəyə məruz qalacaqlar).

komanda = komanda

Bu əsas kimlik doğrulama üçün istifadə edildiyi zaman əmrin yerinə yetirildiyini bildirir. Istifadəçi tərəfindən verilən əmr (əgər varsa) nəzərə alınmır. Müştəri bir pty soruşsa əmr pty-də işlədilir; əks halda tty olmadan çalışır. 8 bitlik təmiz kanal tələb olunarsa, bir pty tələb etməməli və ya no-pty belirtilmemelidir. Komuta bir terslik ilə istinadən verilə bilər. Bu seçim müəyyən ictimai düymələri yalnız müəyyən bir əməliyyatı yerinə yetirmək üçün məhdudlaşdırmaq üçün faydalı ola bilər. Məsələn, uzaqdan ehtiyatlara imkan verən bir açar ola bilər, lakin başqa heç bir şey yoxdur. Müştərinin açıq-aşkar qadağan edilmədiyi təqdirdə TCP / IP və / və ya X11 yönləndirməsini göstərə bilər. Bu seçim kabuk, əmr və ya alt sistemin icrasına tətbiq edilir.

mühit = NAME = dəyər

Bu əsası istifadə edərkən simli ətraf mühitə əlavə olunacağını bildirir. Ətrafdakı dəyişənlər bu şəkildə digər mühüm mühit dəyərlərini əvəzlədilər. Bu cür bir çox variantlara icazə verilir. Ətraf mühitin emalı default olaraq silinirPermitUserEnvironment seçimi vasitəsilə idarə olunur. UseLogin effektiv olduqda bu seçim avtomatik olaraq aradan qaldırılır.

heç bir port-forwarding

Bu əsas etibarlılıq üçün istifadə edildikdə TCP / IP ötürülməsini qadağan edir. Müştərinin hər hansı bir port irəli sorğuları bir səhv qaytaracaq. Bu, məsələn, komanda seçimi ilə əlaqədar istifadə edilə bilər.

no-X11 yönləndirilməsi

Bu əsas kimlik doğrulama üçün istifadə edildikdə X11 ötürülməsini qadağan edir. Müştərinin hər hansı X11 irəli tələbləri bir səhv qaytaracaq.

no-agent-forwarding

Bu əsas kimlik doğrulaması üçün istifadə edildikdə, kimlik doğrulama agentinin yönləndirilməsini qadağan edir.

no-pty

Tty ayırmanın qarşısını alır (pty ayırmağı xahiş etməyəcək).

permopen = host: port

Yalnızca göstərilən host və porta qoşula biləcək şəkildə yerli '`ssh-L' limanının ötürülməsini məhdudlaşdırın. IPv6 ünvanları alternativ sintaksis ilə göstərilə bilər: host / port Bir neçə icazə verilən variantlar virgülle ayrılmış ola bilər. Belirtilen ana ünvanlarda heç bir model eşleme yapılamaz, onlar literal etki alanları və ya adresler olmalıdır.

Nümunələr

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

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

command = "dump / home", no-pty, no-port forwarding 1024 33 23 ... 2323 backup.hut.fi

permopen = "10.2.1.55:80", permopen = "10.2.1.56:25" 1024 33 23 ... 2323

Ssh_Known_Hosts Fayl Formatı

/ Etc / ssh / ssh_known_hosts və $ HOME / .ssh / known_hosts faylları, bütün tanınmış ana kompyuterlər üçün ümumi açıq düymələri ehtiva edir. Qlobal fayl administrator tərəfindən hazırlanmalıdır (isteğe bağlı) və istifadəçi faylı avtomatik olaraq saxlanılır: istifadəçi bilinməyən bir hostdan bağlandığında anahtarı hər istifadəçi faylına əlavə olunur.

Bu fayllardakı hər bir xətt aşağıdakı sahələri ehtiva edir: hostnames, bit, exponent, modulus, comment. Sahələr boşluqlarla ayrılır.

Hostnames vergüllə ayrılmış bir nümunə siyahısıdır ('*' və '?' Joker kart kimi çıxış edir); hər bir model öz növbəsində, kanonik host adına (bir müştərinin kimliyini təsdiq edərkən) və ya istifadəçi tərəfindən verilən adla (bir server təsdiq edərkən) uyğun gəlir. Bir nümunə əvvəl də '!' nifrət göstərmək üçün: host adı nağara edilmiş bir nümunəyə uyğun gəlsə, xəttdə başqa bir nümunə uyğun olsa belə qəbul edilmir (bu xəttlə).

Bits, eksponent və modul birbaşa RSA-nın host düyməsindən alınır; onlar, məsələn /etc/ssh/ssh_host_key.pub ünvanından əldə edilə bilər. İsteğe bağlı şərh sahəsi xəttin sonuna qədər davam edir və istifadə edilmir.

'#' Və boş xətləri ilə başlayan hatlar şərh kimi nəzərə alınmır.

Xatırladıcı kimlik doğrulaması gerçekleştirilirken, eşleme hattı müvafiq bir tuşa sahipse kimlik doğrulama qəbul edilir. Eyni adlar üçün bir neçə xətt və ya fərqli ev sahibi düymələri ilə icazə verilir (lakin tövsiyə edilmir). Fərqli domainlərdən gələn ana adların qısa formaları faylda qoyulduqda bu qaçılmaz olur. Fayllarda ziddiyyətli məlumatlar ola bilər; etibarlılıq, hər hansı bir fayldan etibarlı məlumat əldə edildikdə qəbul edilir.

Bu fayllardakı xətlər, adətən, uzunluğu yüzlərlə simvol olduğuna diqqət yetirirsiniz və əlbəttə ki, ev sahibi düymələrini əl ilə yazmaq istəmirsiniz. Əksinə, bir script tərəfindən yaradın və ya /etc/ssh/ssh_host_key.pub alaraq və ön tərəfdə ana adları əlavə edin.

Nümunələr

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

Həmçinin bax

ssp (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 Protokolu Mimarisi" taslağı-secet-secsh-architecture-12.txt Yanvar 2002 iş davam edir

M. Friedl N. Provos WA Simpson "SSH Nəqliyyat Layer Protokolu üçün Diffie-Hellman Qrupu Birliyi" layihəsi-ietf-secsh-dh-group-exchange-02.txt Yanvar 2002

Mühüm: Şəxsi kompüterinizdə bir komanda necə istifadə edildiyini görmək üçün man komutunu ( % man ) istifadə edin.