Linux / Unix Command: sshd

Jeneng

sshd - daemon OpenSSH SSH

Sinopsis

sshd [- deiqtD46 ] [- b bits ] [- f config_file ] [- g login_grace_time ] [- h host_key_file ] [- k key_gen_time ] [- opsi o ] [- p port ] [- u len ]

Gambaran

sshd (SSH Daemon) yaiku program daemon kanggo ssh (1). Bebarengan karo program kasebut ngganti rlogin lan rsh , lan nyedhiyakake komunikasi ndhelik aman antarane rong host sing ora bisa dipercaya liwat jaringan ora aman. Program-program kasebut dimaksudkan kanggo gampang nginstal lan nggunakake sabisa-bisa.

sshd yaiku daemon sing ngrungokake sambungan saka klien. Biasane diwiwiti nalika boot saka / etc / rc Iku nduwe daemon anyar kanggo saben sambungan sing mlebu. Déwan dicantas nangani pertukaran, enkripsi, otentikasi, eksekusi dhèrèt, lan pertukaran data. Pelaksanaan sshd ndhukung protokol SSH versi 1 lan 2 bebarengan.

Protokol SSH Versi 1

Saben inang nduweni tombol RSA khusus (inang 1024 bit) sing digunakake kanggo ngenali host. Tambahan, nalika daemon diwiwiti, ngasilake kunci RSA server (biasane 768 bit). Tombol iki biasane diwenehi regenerasi saben jam yen wis digunakake, lan ora disimpen ing disk.

Saben klien nyambungake daemon nanggapi karo host umum lan tombol server. Klien mbandhingake kunci inang RSA marang database dhewe kanggo verifikasi yen durung diganti. Klien banjur nggawe nomer acak 256-bit. Iki ndaftar nomer acak iki nganggo tombol host lan tombol server lan ngirim angka sing dienkripsi menyang server. Loro-lorone banjur gunakake nomer acak iki minangka tombol sesi sing digunakake kanggo enkripsi kabeh komunikasi luwih ing sesi kasebut. Sisa sesi kasebut dienkripsi nganggo cipher konvensional, saiki Blowfish utawa 3DES, kanthi 3DES digunakake minangka standar. Klien milih algoritma enkripsi kanggo nggunakake saka sing ditawakake server.

Sabanjure, server lan klien ngetik dialog bukti asli. Klien nyoba kanggo diengsenteniake dhewe nggunakake authentication .rhosts, authentichost .hosthost digabungake karo host otentikasi RSA, RSA tantangan-respon otentikasi, utawa otentikasi basis tembung .

Rhosts authentication biasane dipatèni amarga pancen ora aman, nanging bisa diaktifake ing file konfigurasi server yen pengin. Keamanan sistem ora apik kajaba rlogd lan rexecd ora bisa diaktifake ( sauntara mangkono mbatalake rlogin lan rsh menyang mesin).

Protokol SSH Versi 2

Versi 2 uga kerep digunakake: Saben inang nduweni kunci khusus (RSA utawa DSA) sing digunakake kanggo ngenali host. Nanging, nalika daemon diwiwiti, ora ngasilake tombol server. Keamanan persiyapan diwenehake liwat persetujuan kunci Diffie-Hellman. Persetujuan tombol iki nyebabake tombol sesi bebarengan.

Sisa sesi kasebut dienkripsi nganggo cipher simetris, saiki 128 bit AES, Blowfish, 3DES, CAST128, Arcfour, 192 bit AES, utawa 256 bit AES. Klien milih algoritma enkripsi kanggo nggunakake saka sing ditawakake server. Tambahan, integritas sesi diwenehake liwat kod kode otentikasi kriptografi (hmac-sha1 utawa hmac-md5).

Protokol versi 2 nyedhiyakake aplikasi basis kunci publik (PubkeyAuthentication) utawa host host (HostbasedAuthentication), otentikasi sandi konvensional, lan cara basis tantangan-respon.

Execution Command lan Data Forwarding

Yen klien bisa kasil authenticate dhewe, dialog kanggo nyiapake sesi kasebut wis ditemokake. Ing wektu iki, klien bisa njaluk apa wae kaya nguntungake sambungan X11, ngirimake koneksi TCP / IP, utawa ngirimake sambungan agen otentikasi liwat saluran aman.

Akhire, klien entuk permintaan shell utawa eksekusi perintah. Sisih banjur ngetik mode sesi. Ing mode iki, salah siji sisih bisa ngirim data sawayah-wayah, lan data kasebut diterusake menyang / saka cangkang utawa perintah ing sisih server, lan terminal pangguna ing sisih klien.

Nalika program pangguna mandheg lan kabeh sambungan X11 lan sambungan liyane wis ditutup, server ngirim status metu perintah menyang klien lan loro-lorone metu.

sshd bisa diatur nganggo opsi command-line utawa file konfigurasi. Pilihan baris baris ngganti nilai kasebut ing file konfigurasi.

sshd rereads file konfigurasi nalika nampa sinyal hangup, SIGHUP kanthi ngeksekusi dhewe karo jeneng kasebut diwiwiti minangka, yaiku, / usr / sbin / sshd

Pilihan minangka nderek:

-b bit

Nemtokake nomer bit ing protokol versi 1 ephemeral server (default 768).

-d

Debug mode. Server ngirim output output debug menyang log sistem lan ora dilebokake ing latar mburi. Server uga ora bakal bisa digunakake lan bakal ngolah siji sambungan. Opsi iki mung ditrapake kanggo debugging kanggo server. Opsi multi-d nambah tingkat debugging. Maksimum yaiku 3.

-e

Nalika opsi iki ditemtokake, sshd bakal ngirim output menyang kesalahan standar tinimbang log sistem.

-f configuration_file

Nemtokake jeneng file konfigurasi. Default iku / etc / ssh / sshd_config sshd nolak kanggo wiwit yen ora ana file konfigurasi.

-g login_grace_time

Nyedhiyakake wektu sih kanggo klien bisa netepake awake dhewe (standar 120 detik). Yen klien gagal ngèktentifikasi panganggo ing detik iki, server bakal medhot, lan metu. Nilai nol ora nuduhake watesan.

-h host_key_file

Nemtokake file saka tombol host sing dibaca. Opsi iki kudu diwenehi yen sshd ora mlaku minangka root (minangka file kunci inang normal ora bisa dibaca dening sapa wae nanging root). Default minangka / etc / ssh / ssh_host_key kanggo protokol versi 1, lan / etc / ssh / ssh_host_rsa_key lan / etc / ssh / ssh_host_dsa_key kanggo versi protokol 2. Sampeyan bisa nduwe file kunci host kanggo versi protokol sing beda lan tombol inang algoritma.

-i

Nemtokake manawa sshd lagi mlaku saka inetd. sshd biasane ora mlaku saka inetd amarga kudu nggawe tombol server sadurunge bisa nanggapi klien, lan iki bisa uga njupuk puluhan detik. Klien kudu ngenteni suwene yen kunci kasebut diwenehi regenerasi saben wektu. Nanging, kanthi ukuran cilik (umpamane, 512) nggunakake sshd saka inetd bisa uga layak.

-k key_gen_time

Nemtokake sepira kerepe versi protokol awet versi 1 server diwenehi regenerasi (standar 3600 detik, utawa 1 jam). Motivasi kanggo ngasilake kunci sing cukup asring yaiku yen kunci ora disimpen ing ngendi wae, lan sawise kira-kira jam, dadi mokal ora bisa mateni kunci kanggo decrypting komunikasi intercepted sanajan machine wis retak utawa fisik ngrebat. Nilai nol nuduhake yen kunci ora bakal diwenehi regenerasi maneh.

-o pilihan

Bisa digunakake kanggo menehi opsi ing format sing digunakake ing file konfigurasi. Iki migunani kanggo nemtokake opsi sing ora ana bendera baris perintah.

-p port

Nemtokake port sing server ngrungokake sambungan (gawan 22). Opsi multi port diijini. Port sing kasebut ing file konfigurasi diabaikan nalika port baris kasebut ditetepake.

-q

Mode tenang. Boten dikirim menyang log sistem. Biasane, awal, otentikasi, lan terminasi saben sambungan wis dicathet.

-t

Mode uji. Mung mriksa kekuwatan file konfigurasi lan kewarasan tombol. Iki migunani kanggo nganyari sshd kanthi andhuk minangka pilihan konfigurasi bisa ganti.

-u len

Opsi iki digunakake kanggo nemtokake ukuran kolom ing struktur utmp sing nyekel jeneng host remot. Yen jeneng host sing wis mantep luwih dawa tinimbang len , angka desimal sing dipigunakaké bakal diganti. Iki ngidini sarwa dumadi karo jeneng host sing dawa banget sing overflow lapangan iki isih bisa diidentifikasi unik. Menentukan - u0 nunjukake yen alamat desimal bisikna kudu dilebokake ing file utmp. - u0 uga digunakake kanggo nyegah sshd saka nggawe panjalukan DNS kajaba mekanisme otentikasi utawa konfigurasi kasebut. Mekanisme otentikasi yang mungkin memerlukan DNS termasuk RhostsAuthentication RhostsRSAAuthentication HostbasedAuthentication dan menggunakan opsi pilihan pola = dari file kunci. Pilihan konfigurasi sing mbutuhake DNS kalebu nggunakake pola USER @ HOST ing AllowUsers utawa DenyUsers

-D

Nalika pilihan iki ditemtokake sshd ora bakal ngeculake lan ora dadi daemon. Iki ngidini pemantauan gampang saka sshd

-4

Pasukan sshd mung nggunakake alamat IPv4.

-6

Pasukan sshd mung nggunakake alamat IPv6.

Gambar Konfigurasi

sshd maos konfigurasi data saka / etc / ssh / sshd_config (utawa berkas kasebut kanthi - f ing baris perintah). Pilihan format file lan konfigurasi dijelasake ing sshd_config5.

Proses Login

Nalika panganggo kasil mlebu log, sshd mbatesi :

  1. Yen mlebu log ing tty, lan ora ana perintah sing wis ditemtokake, prints last login wektu lan / etc / motd (kajaba sing dicegah ing file konfigurasi utawa kanthi $ HOME / .hushlogin ndeleng bagian Sx FILES).
  2. Yen mlebu log ing tty, cathet wektu mlebu log.
  3. Cek / etc / nologin yen ana, prints isi lan quits (kajaba root).
  4. Owahan kanggo mbukak karo hak istimewa pangguna biasa.
  5. Nggawe lingkungan dhasar.
  6. Reads $ HOME / .ssh / environment yen ana lan pangguna diijini ngganti lingkungane. Delengen opsi PermitUserEnvironment ing sshd_config5.
  7. Owah-owahan menyang direktori ngarep pangguna.
  8. Yen $ HOME / .ssh / rc ana, nganggo; liya yen / etc / ssh / sshrc ana, nganggo; digunakake minangka xauth. File `` rc 'diwenehi protokol lan otentifikasi X11 lan cookie ing input standar.
  9. Nganggo cangkang utawa pituduh pangguna.

Format File Authorized_Keys

$ HOME / .ssh / authorized_keys yaiku file standar sing nampilake kunci publik sing diidinake kanggo otentikasi RSA ing protokol versi 1 lan kanggo otentikasi kunci publik (PubkeyAuthentication) ing versi protokol 2. AuthorizedKeysFile bisa digunakake kanggo nemtokake file alternatif.

Saben baris file ngemot siji tombol (garis kosong lan garis sing diawali karo `# 'diabaikan minangka komentar). Saben kunci publik RSA kasusun saka kothak ngisor iki, dipisahake kanthi spasi: opsi, bit, eksponen, modulus, komentar. Saben versi protokol 2 kunci publik kasusun saka: opsi, keytype, kunci dikodekan basa64, komentar. Opsi lapangan opsional; Ngarsane wis ditemtokake manawa baris diwiwiti karo nomer utawa ora (kolom opsi ora tau diwiwiti kanthi nomer). Bidang bit, eksponen, modulus lan komentar menehi kunci RSA kanggo protokol versi 1; kolom komentar ora digunakake kanggo apa-apa (nanging uga trep kanggo pangguna kanggo ngenali kunci). Kanggo protokol versi 2, keytype yaiku `` ssh-dss '' utawa `` ssh-rsa ''

Elinga yen garis ing berkas iki biasane maneka dawa atus dawa (amarga ukuran enkode kunci umum). Sampeyan ora pengin ngetik ing; tinimbang, nyalin identitas.pub id_dsa.pub utawa file id_rsa.pub lan owahi.

sshd ngleksanakake ukuran modul tombol RSA minimal kanggo protokol 1 lan protokol 2 tombol 768 bit.

Opsi (saiki) kalebu koma pilihan sing dipisahake koma. Ora ana spasi sing diwenehake, kajaba nganggo tanda kutip ganda. Spesifikasi pilihan ing ngisor iki sing didhukung (delengen tembung kunci pilihan sing ora pati pas):

saka = pola-daftar

Nemtokake manawa ing sanjabane otentikasi tombol umum, jeneng kanonis saka host remot kudu muncul ing daftar pola kasebut (`* 'lan`?' Sing dadi wildcards). Dhaftar uga ngemot patron sing diawali dening prefixing karo `! ' ; yen jeneng host resmi bisa cocog karo pola negasi, tombol ora ditampa. Tujuan pilihan iki kanggo nambah keamanan: pilihan otentifikasi kunci umum dhewe ora ngandelake server jaringan utawa jeneng utawa apa (nanging tombol); Nanging, yen sawijining wong nyolong tombol kasebut, kunci ngidini penyusup kanggo mlebu saka ngendi wae ing donya. Pilihan tambahan iki nggawe nggunakake tombol dicolong luwih angel (jeneng server lan / utawa router kudu dikompromi saliyane mung tombol).

command = command

Nemtokake manawa perintah kasebut dieksekusi kapan tombol iki digunakake kanggo otentikasi. Printah sing diwenehake dening user (yen ana) ora diilangi. Pandhuane diluncurake ing pty yen klien njaluk pty; Yen ora, sampeyan ora bisa mlaku. Yen saluran sing resik 8-bit dibutuhake, siji kudu ora njaluk pty utawa kudu nemtokake no-pty A kutipan bisa klebu ing printah kanthi ngutip karo backslash. Opsi iki bisa uga migunani kanggo matesi tombol umum tartamtu kanggo nindakake operasi tartamtu. Conto bisa dadi kunci sing ngidini backups nanging ora ana sing liya. Elinga yen klien bisa nemtokake TCP / IP lan / utawa X11 Terusake yen ora dilarang. Elinga yen pilihan iki ditrapake kanggo eksekusi shell, command utawa subsistem.

lingkungan = NAME = nilai

Nemtokake menawa string bakal ditambahake menyang lingkungan nalika ngetik nggunakake tombol iki. Variabel lingkungan nyetel cara iki nolak nilai lingkungan standar liyane. Opsi sawetara jinis iki dileksanakake. Prosès lingkungan dipatèni sacara default lan dikontrol liwat pilihan PermitUserEnvironment . Opsi iki kanthi otomatis dipateni yen UseLogin diaktifake.

no-port-forwarding

Mbatesi TCP / IP sing diterusake nalika tombol iki digunakake kanggo otentikasi. Sembarang panjalukan port saka klien bakal ngasilake kesalahan. Iki bisa digunakake, contone, karo pilihan opsine.

no-X11-forwarding

Larangan kanggo nerusake X11 nalika tombol iki digunakake kanggo otentikasi. Sembarang panjalukan X11 sing dikirimake dening klien bakal ngasilake kesalahan.

no-agent-forwarding

Ngirimi nerusake agen sing bener nalika tombol iki digunakake kanggo otentikasi.

ora-pty

Ngalangi alokasi dhuwit (panjalukan kanggo nyediani pty bakal gagal).

permitopen = host: port

Batasi pangiriman lokal `` ssh -L '' supaya bisa nyambung menyang host lan port tartamtu. Alamat IPv6 bisa kasebut karo sintaks alternatif: host / port Akeh pilihan ijinopen bisa diterapake kanthi koma. Ora ana pola pencocokan ditampilake ing hostname sing dijenengi, dheweke kudu dadi domain harfiah utawa alamat.

Conto

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

Format File Ssh_Known_Hosts

Ing / etc / ssh / ssh_known_hosts lan file $ HOME / .ssh / known_hosts ngemot host public keys kanggo kabeh host sing dikenal. Berkas global kudu disiapake dening administrator (opsional), lan file per-user wis dikelola kanthi otomatis: kapan pangguna nyambungake saka host sing ora dikenal tombol kasebut ditambahake menyang file per-user.

Saben baris ing file kasebut ngemot kolom kasebut: hostname, bit, eksponen, modulus, komentar. Kothak bakal dipisahake kanthi spasi.

Jeneng hostname minangka pola cithakan sing dipisahake koma ('*' lan '?' Minangka wildcards); Saben pola kasebut cocog karo jeneng host kanonik (nalika authenticating klien) utawa marang jeneng sing disedhiyakake pengguna (nalika authenticating server). Pola bisa uga didhisiki dening `! ' kanggo nunjukaké negation: yen jeneng inang cocog karo pola negated, ora ditampa (kanthi baris kasebut) sanajan cocok karo pola liya ing baris kasebut.

Bit, exponent, lan modulus dijupuk langsung saka kunci host host; padha bisa dipikolehi, contone, saka /etc/ssh/ssh_host_key.pub Katerangan pilihan opsine tetep ing pungkasan baris, lan ora digunakake.

Garis sing diawali karo `# 'lan garis kosong diabaikan minangka komentar.

Nalika nglakoni otentikasi inang, otentikasi bakal ditampa yen baris sing cocog nduweni kunci sing bener. Mulane diijini (nanging ora dianjurake) kanggo duwe sawetara baris utawa tombol host sing beda kanggo jeneng sing padha. Iki bakal kelakon nalika wangun cendhek jeneng inang saka domain sing beda-beda ditempelake ing file kasebut. Sampeyan bisa nyebabake file kasebut ngemot informasi sing benten; authentication ditampa yen informasi bener bisa ditemokake saka salah siji file.

Elinga yen garis ing file kasebut biasane nganti atusan dawa karakter, lan sampeyan pancen ora pengin ngetik tombol host kanthi tangan. Luwih, gawe kanthi script utawa kanthi njupuk /etc/ssh/ssh_host_key.pub lan nambahake jeneng host ing ngarep.

Conto

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

Deloken sisan

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 "Arsitektur Protokol SSH" draft-ietf-secsh-architecture-12.txt Januari 2002 karya ing materi kemajuan

M. Friedl N. Provos WA Simpson "Grup Simpenan Diffie-Hellman kanggo Protokol Lapisan SSH" draft-ietf-secsh-dh-group-exchange-02.txt Januari 2002 karya ing proses materi

Penting: Gunakake perintah wong ( % man ) kanggo ndeleng carane printah sing digunakake ing komputer sampeyan.