SSH - menyediakan akses kepada pelayan, arahan dan sambungan tanpa kata laluan. Tutup akses IP. Manakah pelanggan SSH terbaik untuk dipilih?

Artikel ini ditandakan sebagai belum selesai. Lihat nota di akhir artikel.

Artikel ini dikhaskan kepada klien dan pelayan terminal selamat (secure shell) dalam Ubuntu, konfigurasi dan penggunaannya. SSH ialah protokol rangkaian khas yang membolehkan anda mendapatkan akses jauh ke komputer dengan tahap keselamatan sambungan yang tinggi. Anda boleh membaca lebih lanjut mengenai protokol ssh.

Penerangan tentang prinsip operasi dan aplikasi yang digunakan

Pada asasnya, SSH dilaksanakan dalam bentuk dua aplikasi - pelayan SSH dan klien SSH. Ubuntu menggunakan pelaksanaan percuma klien SSH dan pelayan - OpenSSH. Apabila menyambung, pelanggan menjalani prosedur kebenaran dengan pelayan dan sambungan yang disulitkan diwujudkan di antara mereka. Pelayan OpenSSH boleh berfungsi dengan kedua-dua protokol ssh1 dan ssh2. Protokol ssh1 pada masa ini dianggap tidak selamat dan penggunaannya sangat tidak digalakkan. Saya sengaja meninggalkan pelbagai butiran teknikal protokol, kerana tujuan utama panduan ini adalah untuk menerangkan konfigurasi dan penggunaannya. Terdapat banyak artikel di Internet tentang protokol itu sendiri, prinsip operasinya, algoritma penyulitan, dll., sebagai contoh, anda boleh membacanya secara terperinci.

Pemasangan

Pasang OpenSSH Anda boleh menggunakan arahan dari terminal:

sudo apt-get install ssh

Metapakej ssh mengandungi kedua-dua klien dan pelayan, tetapi ini kemungkinan besar hanya akan memasang pelayan, kerana klien sudah disertakan dalam Ubuntu secara lalai.

Penalaan Pelayan

Apabila memasang, pelayan SSH ditambah secara automatik pada permulaan. Anda boleh mengawal permulaan, hentikan atau mulakannya semula menggunakan arahan:

perkhidmatan sudo ssh stop| mula| mula semula

Fail konfigurasi utama untuk pelayan SSH ialah fail /etc/ssh/sshd_config, yang hanya boleh dibaca atau diedit oleh superuser. Selepas setiap perubahan pada fail ini, anda mesti memulakan semula pelayan ssh untuk menggunakan perubahan tersebut.

Contoh konfigurasi pelayan SSH lalai dalam Ubuntu:

# Contoh konfigurasi pelayan ssh terbuka dengan ulasan # # Rusia..2010. # # # # # # Konvensyen: # # Dengan "lalai" kami maksudkan kelakuan sshd apabila # # arahan tidak dinyatakan secara eksplisit. Perlu diingat bahawa dalam Ubuntu # # fail sshd_config sudah mengandungi beberapa tetapan yang # # ialah tetapan lalai untuk Ubuntu secara khusus. # # Tetapan sedemikian dinyatakan dalam fail ini. # # # ################################################# ############ ################ Tetapan alamat/port, dsb. #################################################### # ######################## # # ## Pelabuhan ######################## ### ############################### # # # Port digunakan. Anda boleh menentukan beberapa, sebagai contoh: # # Port 22 # # Port 23 # # Port 24 # # Adalah disyorkan untuk menggunakan port bukan standard, kerana # # standard sering diimbas oleh bot untuk potensi # # lubang. Boleh ditinggalkan jika dinyatakan # # melalui alamat. Lihat juga parameter ListenAddress. # # # Port 22 # # ## ListenAddress ########################################## ### # # # Alamat rangkaian di mana pelayan sedang mendengar. Alamat boleh # # ditulis seperti ini: # # ListenAddress host|IPv4_addr|IPv6_addr # # ListenAddress host|IPv4_addr:port # # ListenAddress :port # # Jika tiada port dinyatakan, sshd akan mendengar pada alamat ini dan # # pada port yang dinyatakan dalam pilihan Port. Jika anda akan # # menggunakan ListenAddress tanpa menyatakan port, maka pilihan # # Port mesti mendahului pilihan ListenAddress. Jika # # tidak dinyatakan, maka secara lalai mendengar pada semua # # alamat setempat. Anda boleh menentukan berbilang alamat. # # # ## AddressFamily ############################################## # # # Menentukan keluarga alamat IP yang sepatutnya # # digunakan oleh sshd. Pilihan yang mungkin: # # “mana-mana” - mana-mana # # “inet” (IPv4 sahaja) # # “inet6” (IPv6 sahaja) # # Lalai - “mana-mana”. # AddressFamily inet # # ## UseDNS ############################################ # ######## # # # Menentukan sama ada sshd harus menyemak nama hos dan # # menggunakan nama hos itu untuk menyemak alamat IP yang dihantar oleh klien terhadap # # diterima daripada DNS. # # Nilai lalai ialah "ya". # # # ################################################# ############ ############ Tetapan akses pengguna ###################### #################################################### ### # # # Membenarkan/tidak membenarkan pengguna ditentukan oleh arahan # # DenyUsers, AllowUsers, DenyGroups dan AllowGroups. # # dalam kes ini, semakan pergi dari atas ke bawah sepanjang rantai: # # ## DenyUsers ## # # || # # ## Benarkan Pengguna ## # # || # # ## DenyGroups ## # # || # # ## AllowGroups ## # # Hanya nama pengguna dan kumpulan diterima, # # pengenal pasti (UserID) tidak dikenali. Betulkan # # rakaman beberapa pengguna/kumpulan secara bergilir-gilir, dipisahkan oleh # # ruang. Jika ditulis dalam borang user@host, maka # # pengguna dan hos disemak secara berasingan, ini membolehkan # # mengehadkan akses kepada pengguna tertentu daripada # # hos tertentu. Perlu diingat bahawa arahan # # DenyUsers dan AllowUsers mengambil nama # # pengguna sebagai parameter, manakala DenyGroups dan AllowGroups menggunakan # # nama kumpulan. Lihat CORAK dalam man ssh_config untuk maklumat # # lanjut tentang borang untuk merekod nama pengguna dan kumpulan. # # # ## DenyUsers ############################################## ### # # # Senarai PENGGUNA yang TIDAK BOLEH menggunakan sshd. # # Lalai - tidak dinyatakan = tiada siapa yang dilarang. Itu. jika # # pengguna dinyatakan di sini, maka dia akan dinafikan akses # # ke pelayan ssh. # # # ## AllowUsers ############################################## ## # # # Senarai PENGGUNA yang BOLEH menggunakan sshd, # # Secara lalai - tidak dinyatakan = dibenarkan kepada semua orang. Itu. jika # # sekurang-kurangnya seorang pengguna ditentukan, akses ssh ke pelayan # # hanya tersedia untuk pengguna itu. # # # ## DenyGroups ############################################## ## # # # Senarai KUMPULAN yang TIDAK sepatutnya digunakan oleh sshd. # # Lalai - tidak dinyatakan = tiada kumpulan dilarang. # # Itu dia jika sekurang-kurangnya satu kumpulan ditentukan, maka pengguna # # yang termasuk dalam kumpulan ini akan dinafikan akses kepada pelayan ssh # #. # # # ## AllowGroups ############################################## # # # # Senarai KUMPULAN yang BOLEH digunakan oleh sshd. # # Lalai - tidak dinyatakan = dibenarkan kepada semua orang. Itu. jika # # sekurang-kurangnya satu kumpulan ditentukan, maka hanya pengguna# # yang disertakan di dalamnya akan dibenarkan akses ke pelayan ssh.# # # ################### # ################################################### ### Pilihan menentukan status sambungan ############################################ ###### ########################## # # ## TCPKeepAlive ############ ######## ########################## # # # Menunjukkan sama ada sistem perlu menghantar mesej TCP kepada klien # # untuk mengekalkan sambungan. Jika anda menghantar paket ini, # # anda boleh menentukan sama ada sambungan terputus. Walau bagaimanapun, ini juga # # bermakna sambungan mungkin terputus sekiranya berlaku # # gangguan penghalaan seketika dan # # ini sangat menjengkelkan bagi sesetengah orang. Sebaliknya, jika # # mesej sedemikian tidak dihantar, sesi pada pelayan boleh # # bertahan selama-lamanya, mewujudkan pengguna "hantu" # # dan memakan sumber pelayan. Nilai lalai ialah “ya”,# # i.e. menghantar mesej sedemikian. Untuk melumpuhkan penghantaran # # mesej sedemikian, tetapkan nilai kepada "tidak". Sebelum ini pilihan # # ini dipanggil KeepAlive. Perlu diingat bahawa # # terdapat cara yang lebih selamat untuk menyemak status # # sambungan (lihat di bawah). # # # TCPKeepAlive ya # # ## ClientAliveCountMax ########################################## # # # Menetapkan bilangan mesej kepada pelanggan yang sshd # # hantar berturut-turut tanpa menerima sebarang respons daripada # # klien. Jika ambang dicapai dan # # klien tidak bertindak balas, sshd akan memutuskan sambungan klien, menamatkan sesi # # ssh. Perlu diingat bahawa penggunaan # # mesej sedemikian adalah berbeza sama sekali daripada arahan TCPKeepAlive. # # Mesej kepada/daripada pelanggan dihantar melalui saluran # # yang disulitkan dan oleh itu tidak terdedah kepada penipuan. Mesej # # TCPKeepAlive terdedah kepada penipuan. Mekanisme pelanggan hidup # # amat berharga dalam kes di mana pelayan dan pelanggan memerlukan # # untuk mengetahui apabila sambungan telah menjadi tidak aktif. Nilai lalai # # ialah 3. Sekiranya ClientAliveInterval # # ditetapkan kepada 15 dan ClientAliveCountMax dibiarkan pada # # lalai, pelanggan yang tidak bertindak balas akan diputuskan sambungan selepas kira-kira # # 45 saat. Arahan ini hanya berfungsi untuk # # protokol ssh2. # # # ## ClientAliveInterval ########################################## # # # Set selang masa dalam saat. Jika tiada komunikasi dengan pelanggan semasa # # selang ini, sshd # # menghantar mesej melalui saluran yang disulitkan meminta respons # # daripada klien. Lalai ialah 0, i.e. # # jangan hantar mesej sedemikian. Arahan ini berfungsi # # hanya untuk protokol ssh2. # # # ################################################# ############## ################ Pilihan pengesahan am ################## ## #################################################### ######## # # ## AuthorizedKeysFile ###################################### # # # # Menentukan fail yang mengandungi kunci awam # # digunakan untuk mengesahkan pengguna. Arahan # # mungkin mengandungi token borang %M, yang dimasukkan semasa proses penubuhan sambungan # #. # # Token berikut ditakrifkan: # # %% - digantikan dengan "%" literal # # %h - digantikan dengan direktori rumah # # pengguna yang disahkan # # %u - digantikan dengan nama pengguna yang disahkan # # Oleh itu, fail kunci boleh ditentukan sebagai # # dengan cara mutlak (iaitu satu fail kongsi dengan kunci), dan # # secara dinamik - bergantung kepada pengguna (iaitu satu # # fail untuk setiap pengguna). # # Lalai ialah “.ssh/authorized_keys”. # # Contoh untuk fail kunci dalam folder rumah pengguna: # # AuthorizedKeysFile %h/.ssh/authorized_key # # Contoh untuk fail kongsi: # # AuthorizedKeysFile /etc/ssh/authorized_keys # # Lihat penerangan fail authorized_keys untuk maklumat lanjut. # # # ## ChallengeResponseAuthentication ############################## # # # Menentukan sama ada untuk membenarkan pengesahan respons cabaran # # ). Semua # # jenis pengesahan daripada login.conf disokong. Lalai ialah "ya", # # i.e. benarkan. # # Pada Ubuntu - dilumpuhkan atas sebab keselamatan. # # # ChallengeResponseAuthentication no # # ## HostbasedUsesNameFromPacketOnly ########################## # # # Menentukan cara pelayan harus mendapatkan nama hos pelanggan # # apabila skim pengesahan berdasarkan pengesahan hos. # # Jika ditetapkan kepada "ya", sshd akan # # menggunakan nama hos yang disediakan oleh klien apabila menyemak padanan dalam fail # # ~/.shosts, ~/.rhosts atau /etc/hosts.equiv. # # (melakukan resolusi DNS terbalik) Jika ditetapkan kepada "tidak"# # - sshd akan menyelesaikan nama daripada sambungan TCP itu sendiri. # # Lalai ialah "tidak". # # # ## IgnoreRhosts ############################################## # # # Menghalang penggunaan fail .rhosts dan .shosts # # dalam pengesahan berasaskan hos. # # (RhostsRSAAuthentication atau HostbasedAuthentication). # # Fail /etc/hosts.equiv dan /etc/ssh/shosts.equiv masih # # digunakan. # # Lalai ialah "ya". # # # IgnoreRhosts ya # # ## IgnoreUserKnownHosts ######################################## # # # Menunjukkan sama ada sshd harus mengabaikan fail pengguna # # "hos yang dikenali" ~/.ssh/known_hosts semasa # # proses pengesahan berasaskan hos # # (RhostsRSAAuthentication atau HostbasedAuthentication). # # Lalai ialah "tidak". # # # ## PermitBlacklistedKeys ###################################### # # # Menunjukkan sama ada sshd harus diterima kekunci disenaraihitamkan # # sebagai terjejas (kekunci # # terceroboh diketahui (lihat ssh-vulnkey)). Jika ditetapkan kepada "ya" - # # percubaan pengesahan dengan kekunci sedemikian akan dilog # # dan diterima, jika ditetapkan kepada "tidak" - # # percubaan pengesahan akan ditolak. # # Lalai ialah "tidak". # # # ## PermitEmptyPasswords ############################################ # # # Dalam kes pengesahan yang dibenarkan dengan menggunakan kata laluan, # # menunjukkan sama ada log masuk dengan kata laluan kosong boleh dilakukan. # # Lalai ialah "tidak". # # # PermitEmptyPasswords no # # ## PermitRootLogin ########################################## # # # # Menunjukkan sama ada log masuk ssh sebagai superuser # # (root) adalah mungkin. Boleh mengambil nilai berikut: # # “ya” - superuser boleh log masuk. # # Skim pengesahan global semasa digunakan. # # # # "tanpa kata laluan" - pengguna super boleh log masuk. # # Pengesahan kata laluan akan dilumpuhkan untuknya. # # # # “forced-commands-only” - superuser akan dapat log masuk menggunakan # # pengesahan berdasarkan kunci awam dan # # hanya jika dia lulus arahan yang diperlukan untuk dilaksanakan. # # Ini berguna untuk membuat sandaran, # # walaupun biasa (iaitu bukan melalui ssh) # # log masuk superuser dilumpuhkan. Semua # # kaedah pengesahan lain untuk pengguna super akan disekat.# # # # “tidak” - pengguna super tidak boleh menggunakan ssh untuk # # log masuk. # # # # Nilai lalai ialah "ya". # # # PermitRootLogin ya # # ## Protokol ########################################## ######## # # # Menentukan protokol sshd yang harus digunakan. # # Nilai yang mungkin '1' dan '2' ialah ssh1 dan ssh2 # # masing-masing. Penulisan serentak boleh dilakukan, dalam kes # # nilai harus dipisahkan dengan koma. # # Lalai ialah "2.1". # # Perlu diingat bahawa susunan protokol dalam entri # # tidak menentukan keutamaan, kerana klien memilih # # daripada beberapa protokol yang dicadangkan oleh pelayan untuk digunakan # #. Entri "2,1" adalah sama sekali # # dengan entri "1,2". # # # Protokol 2 # # ## UsePAM ########################################## ########## # # # Membolehkan antara muka PAM (Modul Pengesahan Boleh Pasang # # antara muka). Jika ditetapkan kepada "ya", semua jenis pengesahan # # selain pemprosesan modul sesi dan akaun # # Pengesahan PAM akan digunakan berdasarkan # # respons-cabaran (ChallengeResponseAuthentication dan # # PasswordAuthentication) Kerana # # pengesahan respons cabaran dalam PAM secara amnya berfungsi # # peranan yang sama seperti pengesahan kata laluan, anda harus melumpuhkan # # sama ada Pengesahan Kata Laluan atau # # Pengesahan Response Cabaran. Perlu diingat bahawa # # jika arahan UsePAM didayakan, anda tidak akan dapat menjalankan # # sshd sebagai pengguna selain daripada root. # # Nilai lalai ialah "tidak". # # # GunakanPAM ya # # ## Pengesahan Kata Laluan #################################### # # # Menunjukkan sama ada didayakan sama ada pengesahan menggunakan # # kata laluan. # # Lalai ialah "ya". # # # ## HostKey ############################################## ##### # # # Menentukan fail yang mengandungi kunci hos peribadi # # yang digunakan oleh SSH. Lalai ialah /etc/ssh/ssh_host_key # # untuk protokol ssh1 dan /etc/ssh/ssh_host_rsa_key dan # # /etc/ssh/ssh_host_dsa_key untuk protokol ssh2. # # perlu diperhatikan bahawa sshd tidak akan menggunakan fail # # yang boleh diakses oleh sesiapa selain pengguna. Anda boleh # # menggunakan berbilang fail dengan kekunci, kekuncinya ialah "rsa1" - # # untuk protokol ssh1 dan "dsa"/"rsa" untuk protokol ssh2. # # # HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key # # ############################### ################################## ########## Pilihan protokol SSH versi 1 (ssh1) #################################################### ### ###################### # AMAT TIDAK DIGAYORKAN untuk menggunakan protokol ssh1.# # Protokol ssh2 jauh lebih selamat daripada ssh1 # ### ######## ############################################ ###### # # ## KeyRegeneration Interval ################################## # # # Untuk Protokol ssh1 - sekali pada masa tertentu # # pelayan sementara baharu # # kunci dijana secara automatik (jika telah digunakan). Ini dilakukan untuk # # menghalang sesi yang dipintas daripada dinyahsulit untuk # # kemudian log masuk ke mesin dengan parameter sesi ini dan # # mencuri kunci. Kunci sedemikian tidak disimpan di mana-mana (ia disimpan dalam # # RAM). Arahan ini menentukan # # hayat kunci dalam beberapa saat, selepas itu ia akan # # dijana semula. Jika nilai ditetapkan kepada 0 - # # kunci tidak akan dijana lagi. # # Nilai lalai ialah 3600 (saat). # # # KeyRegenerationInterval 3600 # # ## RhostsRSAAuthentication #################################### # # # Menunjukkan sama ada pengesahan berdasarkan # # rhosts atau /etc/hosts.equiv fail bersempena dengan # # pengesahan hos yang berjaya melalui RSA. # # Hanya relevan untuk protokol ssh1. # # Lalai ialah "tidak". # # # RhostsRSAAuthentication no # # ## RSAAuthentication ########################################## ## # # # Menunjukkan sama ada pengesahan RSA "tulen" dibenarkan. # # Hanya relevan untuk protokol ssh1. # # Lalai ialah "ya". # # # Pengesahan RSAA ya # # ## ServerKeyBits ########################################## ### # # # Mentakrifkan bilangan bit dalam kunci sementara pelayan untuk # # protokol ssh1. Nilai minimum ialah 512. # # Nilai lalai ialah 1024. # ServerKeyBits 768 # # ################################### # ########################################## Pilihan protokol SSH versi 2 (ssh2) ## ## ######## ########################################## ### #################### # # ## Sifir ######################## ## ######################## # # # Menunjukkan algoritma penyulitan yang dibenarkan untuk # # protokol ssh2. Berbilang algoritma mesti # # dipisahkan dengan koma. Algoritma yang disokong: # # "3des-cbc", "aes128-cbc", "aes192-cbc", "aes256-cbc", # # "aes128-ctr", "aes192-ctr", "aes256-ctr", " arcfour128”, # # “arcfour256”, “arcfour”, “blowfish-cbc”, “cast128-cbc”. # # Secara lalai: # # aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, # # arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, # # aes192-ctr, # # aes192-ctr -ctr # # # ## HostbasedAuthentication #################################### # # # Menunjukkan sama ada pengesahan adalah didayakan , berdasarkan # # pengesahan hos. rhosts atau /etc/hosts.equiv ditandakan, # # dan jika berjaya, digabungkan dengan semakan # # kunci awam yang berjaya, akses dibenarkan. Arahan # # ini adalah sama dengan arahan RhostsRSAAuthentication dan # # hanya sesuai untuk protokol ssh2. # # Lalai ialah "tidak". # # # HostbasedAuthentication no # # ## MAC ############################################ ############ # # # Menunjukkan algoritma MAC yang sah (mesej # # kod pengesahan). Algoritma MAC digunakan # # oleh protokol ssh2 untuk melindungi integriti data. Berbilang # # algoritma mesti dipisahkan dengan koma. # # Lalai: # # hmac-md5,hmac-sha1, [e-mel dilindungi] ,hmac-ripemd160, # # hmac-sha1-96,hmac-md5-96 # # # ## Pengesahan Pubkey ########################## ########## # # # Menunjukkan sama ada pengesahan berdasarkan # # kunci awam dibenarkan. Hanya relevan untuk protokol ssh2. # # Lalai ialah "ya". # # # Pengesahan Pubkey ya ################################################ # ###################################### Pilihan GSSAPI ########## ## #################################################### ## ############################ # # ############ Terpakai hanya untuk protokol ssh2 #### #### ### # # ## Pengesahan GSSAPIA ######################################## ## # # # Menunjukkan sama ada pengesahan pengguna # # berdasarkan GSSAPI atau tidak. Lalai ialah "tidak", i.e. dilarang. # # # ## GSSAPIKeyExchange ############################################ # # # Menunjukkan sama ada pertukaran kunci berdasarkan # # GSSAPI dibenarkan. Pertukaran kunci menggunakan GSSAPI tidak bergantung pada # # kunci ssh untuk mengesahkan identiti hos. # # Lalai ialah "tidak" - i.e. pertukaran adalah dilarang. # # # ## GSSAPICleanupCredentials ################################## # # # Menentukan sama ada untuk memusnahkan # # cache pengguna secara automatik kelayakan pengesahan apabila # # sesi tamat. # # Lalai ialah "ya" - i.e. perlu dimusnahkan. # # # ## GSSAPIStrictAcceptorCheck #################################### # # # Menentukan betapa ketatnya semakan identiti harus # # pelanggan apabila mengesahkan melalui GSSAPI. # # Nilai "ya" menyebabkan pelanggan mengesahkan kepada # # menerima perkhidmatan hos pada hos semasa. Nilai "tidak" # # membenarkan klien untuk mengesahkan menggunakan mana-mana kunci perkhidmatan # #. # # Lalai ialah "ya". # # Perlu diingat bahawa menetapkan ini kepada "tidak" mungkin # # hanya berfungsi dengan perpustakaan Kerberos GSSAPI yang jarang ditemui. # # # ################################################# ################################ Pilihan Kerberos ################ ########## ########################################## ### #################### # # ## Pengesahan Kerberos ######################## ### ######## # # # Menunjukkan sama ada kata laluan # # yang disediakan oleh pengguna untuk pengesahan # # (PasswordAuthentication) memerlukan pengesahan dalam Kerberos KDC. # # Untuk menggunakan pilihan ini, pelayan mesti # # mengesahkan bahawa KDC adalah benar. (Pelayan memerlukan # # Kerberos servtab yang membenarkan pengesahan identiti # # KDC) # # Lalai ialah "tidak". # # # ## KerberosGetAFSToken ############################################ # # # Jika AFS aktif dan pengguna telah menerima Kerberos 5 TGT, # # sama ada hendak cuba mendapatkan token AFS sebelum pengguna # # boleh mengakses folder rumah mereka. # # Lalai ialah "tidak". # # # ## KerberosOrLocalPasswd ###################################### # # # Menunjukkan perkara yang perlu dilakukan sekiranya berlaku jika pengesahan # # melalui Kerberos gagal. Jika # # value = "ya", kata laluan akan disahkan menggunakan # # sebarang mekanisme kebenaran tempatan tambahan, # # contohnya /etc/passwd. # # Lalai ialah "ya". # # # ## KerberosTicketCleanup ###################################### # # # Menunjukkan sama ada untuk mematikan fail secara automatik dengan # # cache tiket pengguna pada akhir sesi. # # Lalai ialah "ya". # # # ################################################# ############################## Pilihan ubah hala #################### # ## ################################################## ## ############## # # ## AllowAgentForwarding ################################ #### ### # # # Menunjukkan sama ada untuk membenarkan atau melumpuhkan ubah hala # # ssh-agent. Lalai ialah "ya", iaitu benarkan. # # Perlu diingat bahawa melumpuhkan hala semula tidak akan # # meningkatkan keselamatan sehingga pengguna juga # # akses shell akan dinafikan, kerana mereka sentiasa boleh memasang # # analog ejen mereka sendiri. # # # ## AllowTcpForwarding ######################## # ############### # # # Menunjukkan sama ada untuk mendayakan atau melumpuhkan pengalihan TCP. # # Lalai ialah "ya", iaitu membenarkan. Perlu diingat bahawa # # kedua-duanya dalam kes AllowAgentForwarding, melumpuhkan # # pengalihan tidak akan meningkatkan keselamatan selagi # # pengguna mempunyai akses konsol, kerana mereka boleh # # memasang rakan sejawat mereka. # # # # # ## GatewayPorts ######## ## ################################## # # # Menentukan sama ada untuk membenarkan akses hos jauh kepada # # port yang dimajukan . Secara lalai, sshd mendengar # # untuk sambungan ke port yang dimajukan hanya pada antara muka gelung balik # # setempat. Ini menghalang # # hos jauh lain daripada menyambung ke port yang dimajukan. Anda boleh # # menggunakan GatewayPorts untuk membenarkan sshd # # melakukan ini. Arahan boleh mengambil 3 nilai: # # "tidak" - gelung balik sahaja. # # "ya" - sebarang alamat. # # "clientspecified" - alamat yang ditentukan oleh klien. # # # ## PermitBuka ############################################## ## # # # Menunjukkan tempat pemajuan port TCP dibenarkan. # # Menentukan pengalihan mesti mengambil salah satu daripada # # bentuk berikut: # # PermitOpen host:port # # PermitOpen IPv4_addr:port # # PermitOpen :port # # Entri berbilang boleh ditentukan dengan memisahkannya dengan ruang. # # Argumen "mana-mana" boleh digunakan untuk mengalih keluar semua # # sekatan pada pemajuan port. Secara lalai, sebarang # # ubah hala dibenarkan. # # # ## PermitTunnel ############################################## # # # Menunjukkan sama ada ubah hala peranti tun dibenarkan. # # Boleh mengambil nilai: # # "ya" # # "titik-ke-titik" (lapisan rangkaian ke-3) # # "ethernet" (lapisan rangkaian ke-2) # # "tidak" # # Nilai "ya" membenarkan kedua-dua "titik -to-point" # # dan "ethernet" pada masa yang sama. Lalai ialah "tidak". # # # ################################################# ############ ################## Pilihan pembalakan ################## #################################################### ## ############## # # ## SyslogFacility ################################ ## ########## # # # Menetapkan kod objek log untuk menulis mesej kepada # # syslog daripada sshd. Nilai yang mungkin: # # DAEMON # # USER # # AUTH # # LOCAL0 # # LOCAL1 # # LOCAL2 # # LOCAL3 # # LOCAL4 # # LOCAL5 # # LOCAL6 # # LOCAL7 # # Lalai ialah AUTH. # # # SyslogFacility AUTH # # ## LogLevel ########################################## ######## # # # Menetapkan tahap verbositi log sshd. # # Pilihan yang mungkin: # # SENYAP # # SENYAP # # MAUT # # RALAT # # INFO # # VERBOSE # # DEBUG # # DEBUG1 # # DEBUG2 # # DEBUG3 # # Default ialah INFO. # # DEBUG dan DEBUG1 adalah setara antara satu sama lain. # # DEBUG2 dan DEBUG3 menetapkan tahap tertinggi debug # # output. Log pada peringkat DEBUG mengancam # # privasi pengguna dan tidak disyorkan. # # # INFO Tahap Log # # ############################################# #################################### Ubah hala X11 ############ ######## ############################################ # #################### # # ## X11Memajukan ########################## ### ################ # # # Menunjukkan sama ada pengalihan subsistem grafik X11 # # didayakan. Boleh mengambil nilai "ya" atau "tidak". # # Lalai ialah "tidak". # # Perhatian - mendayakan ubah hala X11 yang mudah adalah # # risiko besar untuk kedua-dua pelayan dan pelanggan, kerana Dalam # # pengalihan sedemikian, paparan proksi sshd # # menerima sambungan daripada sebarang alamat. Gunakan # # arahan X11UseLocalhost untuk menyekat akses kepada pelayan ubah hala # # X. Perlu diingat bahawa # # melumpuhkan pengalihan tidak akan menjamin bahawa # # pengguna tidak akan dapat mengubah hala X11, kerana mempunyai # # akses konsol mereka sentiasa memasang # # pengarah semula mereka sendiri. Ubah hala X11 akan # # dilumpuhkan secara automatik jika arahan UseLogin # # didayakan. # # # X11Memajukan ya # # ## X11UseLocalhost ########################################## # # # # Menunjukkan sama ada sshd harus mengehadkan skop pemajuan # # X11 kepada alamat gelung balik setempat, atau # # harus membenarkan sebarang alamat. Secara lalai, sshd # # menetapkan pelayan ubah hala X11 ke alamat setempat # # dan menetapkan bahagian nama hos pembolehubah persekitaran DISPLAY # # kepada "host tempatan". Perlu diingat bahawa # # sesetengah pelanggan X11 yang lebih lama mungkin tidak berfungsi dengan tetapan # # ini. Lalai ialah "ya", i.e. pengalihan # # dihadkan oleh localhost, nilai - "tidak" - melumpuhkan # # sekatan. # # # ## XAuthLocation ############################################## # # # Menentukan laluan penuh ke program xauth. # # Lalai ialah /usr/bin/X11/xauth. # # # ## X11DisplayOffset ############################################ # # # Menunjukkan nombor paparan pertama yang tersedia untuk sshd sebagai ubah hala # # X11. Ini dilakukan supaya # # X yang diubah hala tidak bertindih dengan # # yang sebenar. Lalai ialah 10. # # # X11DisplayOffset 10 # # # ####################################### ## ############################################ Pelbagai pilihan #### ## ###################################################### #### ############################## # # ## LoginGraceTime ############ ###### ########################## # # # Masa selepas pelayan memutuskan sambungan # # pengguna jika dia tidak dapat log masuk # # dengan memuaskan. Nilai 0 - membenarkan pengguna # # log masuk selama-lamanya. Lalai ialah 120 (saat). # # # LoginGraceTime 120 # # ## MaxAuthTries ########################################## ### #### # # # Menunjukkan bilangan maksimum percubaan pengesahan # # dibenarkan setiap sambungan. # # Sebaik sahaja bilangan percubaan yang gagal melebihi separuh daripada # # nilai yang ditentukan, semua percubaan berikutnya akan # # dilog. Nilai lalai ialah 6. # # # ## MaxSessions ######################################## ####### # # # Menentukan bilangan maksimum sambungan serentak # # untuk setiap sambungan rangkaian. Lalai ialah 10. # # # ## MaxStartups ########################################## ###### # # # Menentukan bilangan maksimum # # sambungan tidak dibenarkan serentak ke sshd. Jika # # bilangan sambungan melebihi had, semua # # sambungan tambahan akan digugurkan sehingga # # sambungan semasa selesai sama ada dengan kebenaran # # yang berjaya atau tempoh masa yang dinyatakan dalam arahan # # LoginGraceTime telah tamat tempoh. Nilai lalai ialah 10. # # Secara pilihan, anda boleh menetapkan sambungan untuk menetapkan semula awal dengan # # menentukan tiga nilai sebagai parameter, dipisahkan # # dengan titik bertindih “start:rate:full” (contohnya: "10:30 :60"). # # sshd akan menolak percubaan sambungan dengan kebarangkalian sama dengan # # "kadar/100" (iaitu. dalam contoh kami - 30%) jika sudah ada # # "mula" (10) sambungan yang tidak dibenarkan. # # Kebarangkalian meningkat secara linear dan sebarang # # percubaan sambungan akan ditolak jika bilangan # # sambungan yang tidak dibenarkan mencapai "penuh" (60). # # # ## Mampatan ################################################ # # # # Menunjukkan sama ada pemampatan data didayakan. Boleh # # "ya" - pemampatan didayakan. # # "tertunda" - mampatan ditangguhkan sehingga # # pengguna berjaya disahkan. # # "tidak" - pemampatan dinyahdayakan. # # Lalai adalah "tertunda". # # # ## UseLogin ############################################## #### # # # Menunjukkan sama ada log masuk harus digunakan untuk sesi interaktif # #. Nilai lalai ialah "tidak". # # Perlu diingat bahawa log masuk tidak pernah digunakan untuk # # melaksanakan arahan jauh. Juga ambil perhatian bahawa # # menggunakan log masuk akan menjadikannya mustahil untuk menggunakan # # arahan X11Forwarding, kerana log masuk tidak tahu apa yang perlu # # lakukan dengan xauth. Jika arahan # # UsePrivilegeSeparation didayakan, ia akan dilumpuhkan selepas # # kebenaran. # # # ## UsePrivilegeSeparation ######################################## # # # Menentukan sama ada sshd harus memisahkan keistimewaan. Jika ya # # maka proses # # anak yang tidak bernasib baik akan dibuat terlebih dahulu untuk trafik rangkaian masuk. Selepas # # kebenaran berjaya, proses lain akan dibuat dengan keistimewaan # # pengguna log masuk. Tujuan utama # # pengasingan keistimewaan adalah untuk mengelakkan penyalahgunaan hak akses. # # Nilai lalai ialah "ya". # # # UsePrivilegeSeparation ya # # ## StrictModes ########################################## ### ##### # # # Menunjukkan sama ada sshd perlu menyemak akses dan # # mod pemilikan folder dan fail pengguna sebelum # # membenarkan pengguna log masuk. Ini biasanya kerana # # pemula sering menjadikan fail mereka boleh ditulis # # oleh semua orang. Lalai ialah "ya". # # # StrictModes ya # # ## AcceptEnv ########################################## ####### # # # Menentukan pembolehubah persekitaran yang diluluskan # # oleh klien akan diterima. Lihat pilihan SendEnv dalam klien. # # Perlu diingat bahawa menghantar pembolehubah hanya mungkin # # untuk protokol ssh2. Pembolehubah ditentukan mengikut nama, # # topeng boleh digunakan ('*' dan '?'). Anda boleh menentukan # # berbilang pembolehubah yang dipisahkan oleh ruang, atau memisahkan AcceptEnv kepada # # berbilang baris. Berhati-hati - beberapa # # pembolehubah persekitaran boleh digunakan untuk memintas # # persekitaran pengguna yang dilarang. Gunakan arahan # # ini dengan berhati-hati. Secara lalai, tiada # # pembolehubah persekitaran pengguna diterima. # # # AcceptEnv LANG LC_* # # ## PermitUserEnvironment ###################################### # # # Menentukan sama ada sshd harus menerima pilihan # # ~/.ssh/environment dan environment= dalam # # ~/.ssh/authorized_keys. Lalai ialah "tidak". Perlu # # diperhatikan bahawa mendayakan pemprosesan persekitaran mungkin memberi # # keupayaan kepada pengguna untuk memintas sekatan dalam beberapa # # konfigurasi yang menggunakan mekanisme seperti # # LD_PRELOAD. # # # # # ## PidFile ############################################ # ####### # # # Menentukan fail yang mengandungi ID proses # # (ID proses, PID) daemon SSH. # # Lalai - /var/run/sshd.pid # # # # # ## PrintLastLog ############################## # ############## # # # Menentukan sama ada sshd harus memaparkan tarikh dan masa # # sesi terakhir apabila pengguna log secara interaktif. # # Lalai ialah "ya". # # # PrintLastLog ya # # ## PrintMotd ########################################## ####### # # # Menentukan sama ada sshd harus memaparkan /etc/motd # # apabila pengguna log masuk secara interaktif. Pada sesetengah sistem # # (contohnya Ubuntu) maklumat ini juga # # dipaparkan oleh shell. # # Nilai lalai ialah "ya". # # # PrintMotd no # # ## Banner ########################################## ########## # # # Menunjukkan fail yang mengandungi sepanduk teks yang # # akan ditunjukkan kepada pengguna SEBELUM prosedur pengesahan # #. Pilihan hanya tersedia untuk protokol ssh2.# # Secara lalai - tidak menunjukkan apa-apa. # # Di Ubuntu, fail issue.net mengandungi frasa Ubuntu (versi), # # sebagai contoh, untuk karma ia adalah "Ubuntu 9.10". Bolehkah # # digunakan untuk mengelirukan kemungkinan penyerang, # # dengan menulis di sana, sebagai contoh, "Penghala Interet D-Link Saya" =) # # # Banner /etc/issue.net # # ## ChrootDirectory ###### #### ################################# # # # Jika dinyatakan, sediakan laluan ke # # dikroot selepas pengesahan. Laluan dan semua # # kandungannya mesti sepadan dengan folder # # yang dimiliki oleh pengguna super dan tidak # # boleh ditulis oleh pengguna lain. # # Laluan boleh mengandungi label yang digantikan semasa # # proses pengesahan: # # %% - digantikan dengan "%" literal # # %h - digantikan dengan direktori rumah # # pengguna yang disahkan # # %u - digantikan dengan nama pengguna yang disahkan # # chroot -folder harus mengandungi semua fail dan # # folder yang diperlukan untuk sesi pengguna. Sesi # # interaktif memerlukan sekurang-kurangnya: # # shell, biasanya sh # # peranti asas dalam /dev seperti: # # null, zero, stdin, stdout, stderr, arandom dan tty # # untuk sesi pemindahan data menggunakan sftp no # # tetapan tambahan diperlukan jika proses pelayan # # sftp dalaman digunakan. Lihat Subsistem untuk # # maklumat lanjut. Secara lalai, chroot tidak dilakukan. # # # ## ForceCommand ############################################## # # # Menyebabkan arahan yang ditentukan dilaksanakan. Mengabaikan # # sebarang arahan yang dihantar oleh klien atau ditulis kepada # # ~/.ssh/rc. Perintah itu dipanggil dari shell # # pengguna dengan pilihan -c. Sesuai untuk melancarkan shell, arahan # # atau subsistem. Paling berguna di dalam # # blok Padanan. Perintah yang asalnya dikeluarkan oleh klien disimpan # # dalam pembolehubah persekitaran SSH_ORIGINAL_COMMAND. Jika anda # # menentukan arahan "internal-sftp", # # pelayan sftp dalaman akan dimulakan, yang tidak memerlukan # # fail dan folder tambahan yang diterangkan dalam arahan ChrootDirectory. # # # ## Subsistem ################################################ ### # # # Mentakrifkan dan mengkonfigurasi subsistem luaran (contohnya # # daemon pemindahan fail). # # Argumen ialah nama dan arahan (dengan kemungkinan # # argumen) yang akan dilaksanakan apabila meminta # # subsistem. Perintah sftp-server memulakan subsistem pemindahan fail "sftp" - # #. Selain itu, anda boleh menentukan # # "internal-sftp" sebagai subsistem - yang akan melancarkan # # pelayan sftp dalaman. Ini boleh memudahkan konfigurasi # # apabila menggunakan arahan # # ChrootDirectory. Secara lalai, tiada subsistem # # dipanggil. Hanya relevan untuk protokol ssh2. # # # Subsistem sftp /usr/lib/openssh/sftp-server # # # ################################# #################################################### Perlawanan Sekat ###################################################### ## ######################################## # # # Saya mengalihkannya secara khas ke penghujung fail untuk menjadikannya lebih mudah # # tulis Peraturan padanan. # # MadKox. # # # # Arahan Padanan mewakili permulaan blok # # bersyarat. Jika semua kriteria yang dinyatakan dalam baris # # Padanan dipenuhi, arahan pada baris berikutnya bagi blok akan dilaksanakan, # # membenarkan nilai arahan global dalam fail # # sshd_config dipintas untuk kes yang kriteria untuk arahan # # Padanan. Blok dianggap sebagai semua baris yang datang selepas baris # # dengan kriteria (Padanan - baris) ke baris padanan seterusnya # # atau ke penghujung fail. Hujah arahan Padanan ialah satu atau # # berbilang pasangan entri kriteria. Jenis entri yang mungkin: # # Pengguna # # Kumpulan # # Hos # # Alamat # # Entri boleh mengandungi sama ada nilai tunggal # # (contohnya Pengguna=pengguna) atau berbilang nilai # # dipisahkan dengan koma (Pengguna=pengguna1 ,pengguna2). Ungkapan biasa yang diterangkan dalam bahagian # # PATTERNS fail ssh_config juga boleh digunakan # #. Entri dalam kriteria # # Alamat boleh mengandungi alamat dalam CIDR # # (Alamat/Panjang Topeng, cth. “192.0.2.0/24” atau # # “3ffe:ffff::/32”). Perlu diingat bahawa # # panjang topeng yang disediakan mesti sepadan dengan alamat, dan terlalu # # panjang/pendek untuk alamat tidak akan berfungsi. # # Padanan hanya boleh menggunakan # # set arahan tertentu sebagai arahan: # # AllowTcpForwarding # # Banner # # ChrootDirectory # # ForceCommand # # GatewayPorts # # GSSAPIAuthentication # # HostbasedAuthentication # # KbdInteractiveAuthentication # # KerberosAuthentication # # MaxAuthsTries # # MaxAuthsTries # Pengesahan Kata Laluan # # PermitOpen # # PermitRootLogin # # RhostsRSAAuthentication # # RSAAuthentication # # X11DisplayOffset # # X11Forwarding # # X11UseLocalHost #

Anda boleh menyalin teks di atas ke dalam sshd_config anda sendiri dan menggunakannya kemudian untuk konfigurasi.

Dengan sendirinya, pelayan SSH yang dikonfigurasikan dengan salah adalah kelemahan besar dalam keselamatan sistem, kerana penyerang yang mungkin mempunyai peluang untuk mendapatkan akses hampir tanpa had kepada sistem. Di samping itu, sshd mempunyai banyak pilihan berguna tambahan yang dinasihatkan untuk membolehkan untuk meningkatkan kebolehgunaan dan keselamatan.

Port, ListenAddress dan AddressFamily

Ketiga-tiga parameter ini menentukan port dan alamat mana pelayan anda akan mendengar sambungan masuk. Pertama, masuk akal, jika boleh, untuk mengehadkan keluarga alamat yang sedang diproses kepada yang sebenarnya digunakan, iaitu jika anda hanya menggunakan IPv4, melumpuhkan IPv6, dan sebaliknya. Ini boleh dilakukan menggunakan parameter AddressFamily, contohnya (untuk membenarkan IPv4 dan menafikan IPv6):

AddressFamily inet

Kedua, adalah dinasihatkan untuk menukar port standard (22) di mana sshd mendengar. Ini disebabkan oleh fakta bahawa banyak pengimbas rangkaian sentiasa cuba menyambung ke port 22 dan sekurang-kurangnya mendapat akses dengan log masuk/kata laluan secara kasar daripada pangkalan data mereka. Walaupun anda telah melumpuhkan pengesahan kata laluan, percubaan ini sangat menyumbat log dan (dalam kuantiti yang banyak) boleh menjejaskan kelajuan pelayan ssh secara negatif. Jika atas sebab tertentu anda tidak mahu menukar port standard, anda boleh menggunakan pelbagai utiliti luaran untuk memerangi pemaksa kasar, contohnya fail2ban, dan yang terbina dalam, seperti MaxStartups.
Anda boleh menetapkan port sama ada sebagai nilai mutlak untuk semua antara muka menggunakan arahan Port, atau sebagai nilai khusus untuk setiap antara muka menggunakan arahan ListenAddress. Sebagai contoh:

Pelabuhan 2002

ListenAddress 192.168.0.1:2003 ListenAddress 192.168.1.1:2004

Tolak akses jauh untuk pengguna super

Secara lalai, akses root dilarang oleh kata laluan (dengan kunci adalah mungkin) - pilihan PermitRootLogin ditetapkan kepada tanpa kata laluan . Tetapi, memandangkan secara lalai dalam Ubuntu pengguna yang ditambahkan semasa pemasangan sistem mempunyai keupayaan untuk menyelesaikan semua tugas pentadbiran melalui sudo, mewujudkan keupayaan untuk akses root ke sistem melalui ssh nampaknya tidak munasabah (walaupun dengan pengesahan kunci). Adalah disyorkan untuk mematikannya sepenuhnya. pilihan ini, atau gunakannya hanya dalam mod perintah-paksa sahaja. Anda boleh melumpuhkan akses root seperti ini:

PermitRootLogin no

Pengesahan kata laluan

Pengesahan kata laluan, yang dibenarkan secara lalai, boleh dikatakan kaedah kebenaran paling primitif dalam sshd. Di satu pihak, ini memudahkan konfigurasi dan sambungan pengguna baharu (pengguna hanya perlu mengetahui log masuk/kata laluan sistemnya), sebaliknya, kata laluan sentiasa boleh diteka, dan pengguna sering mengabaikan untuk mencipta kata laluan yang kompleks dan panjang. . Bot khas sentiasa mengimbas pelayan ssh yang boleh diakses dari Internet dan cuba log masuk ke mereka dengan log masuk/kata laluan yang memaksa dari pangkalan data mereka. Adalah sangat disyorkan untuk tidak menggunakan pengesahan kata laluan. Anda boleh melumpuhkannya seperti ini:

No. Pengesahan Kata Laluan

Jika atas sebab tertentu anda masih mahu menggunakan pengesahan kata laluan, pastikan tiada sesiapa boleh log masuk dengan kata laluan kosong. Untuk melakukan ini, tetapkan arahan PermitEmptyPasswords:

PermitEmptyPasswords no

Protokol SSH1 dan SSH2

Seperti yang telah disebutkan, sshd boleh berfungsi dengan protokol SSH1 dan SSH2. Walau bagaimanapun, menggunakan SSH1 yang tidak selamat adalah sangat tidak digalakkan. Anda boleh memaksa sshd untuk berfungsi hanya dengan protokol SSH2 seperti ini:

Pengesahan berdasarkan kunci SSH2 RSA

Kaedah kebenaran yang paling disukai ialah pengesahan berdasarkan kekunci SSH2 RSA. Dengan kaedah ini, pengguna menjana sepasang kunci di sisinya, yang mana satu kunci adalah rahsia dan satu lagi adalah awam. Kunci awam disalin ke pelayan dan digunakan untuk mengesahkan identiti pengguna. Untuk mendapatkan maklumat lanjut tentang mencipta pasangan kunci dan cara meletakkannya pada pelayan, lihat perihalan klien SSH. Anda boleh mendayakan pengesahan kunci awam seperti ini:

Pengesahan Pubkey ya

Pelayan mesti tahu di mana hendak mencari kunci awam pengguna. Fail khas authorized_keys digunakan untuk ini. Sintaksnya mungkin seperti berikut:

# Komen ditulis hanya pada baris baharu # penampilan umum entri dalam fail_kunci_berkuasa # [pilihan] jenis_kunci (ssh-rsa atau ssh-dss) sangat_panjang_rentetan_tidak dapat difahami oleh orang biasa [log masuk@hos] ssh-rsa AAAAB3Nza...LiPk == [e-mel dilindungi] from="*.sales.example.net,!pc.sales.example.net" ssh-rsa AAAAB2...19Q== [e-mel dilindungi] command="dump /home",no-pty,no-port-forwarding ssh-dss AAAAC3...51R== example.net permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh -dss AAAAB5...21S== terowong="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...== [e-mel dilindungi]

Anda boleh menentukan sama ada satu fail kongsi dengan kunci atau satu fail untuk setiap pengguna. Kaedah terakhir adalah lebih mudah dan selamat, kerana anda boleh, pertama, menentukan kombinasi kunci yang berbeza untuk setiap pengguna, dan kedua, mengehadkan akses kepada kunci awam pengguna. Anda boleh menentukan fail dengan kunci menggunakan arahan AuthorizedKeysFile:

AuthorizedKeysFile %h/.ssh/my_keys

untuk pengguna skema - fail
atau

AuthorizedKeysFile /etc/ssh/authorized_keys

untuk skema dengan fail kongsi. Secara lalai, klien SSH mencari kunci dalam fail ~/.ssh/authorized_keys.

Lebih lanjut mengenai keselamatan

Tetapan tambahan

Pengguna dan kumpulan.

Jika anda mempunyai ramai pengguna "tinggal" pada pelayan anda, dan anda ingin membenarkan akses melalui ssh kepada beberapa daripada mereka sahaja, anda boleh menggunakan arahan DenyUsers, AllowUsers, DenyGroups dan AllowGroups. Untuk mendapatkan maklumat lanjut tentang arahan ini, lihat ulasan dalam contoh sshd_config.

Pilihan Status Sambungan

Secara lalai, antara kaedah untuk menentukan keadaan sambungan, hanya kaedah semakan sambungan TCP didayakan - TCPKeepAlive, bagaimanapun, sshd boleh menentukan keadaan sambungan dengan cara yang lebih mudah dan selamat. Lihat bahagian yang sepadan dalam contoh sshd_config untuk butiran lanjut.

Prestasi. MaxStartups

Port Forwarding

Ubah hala X11

Pada pelayan, dalam fail /etc/ssh/sshd_config, tetapkan parameter (didayakan secara lalai):

ForwardX11 ya

Pada klien, tetapkan parameter dalam fail /etc/ssh/ssh_config (dilumpuhkan secara lalai):

ForwardAgent ya ForwardX11 ya

Anda boleh menjalankannya pada klien seperti ini: ssh yurauname@serverip firefox . Atau mula-mula pergi ke ssh yurauname@serverip dan kemudian jalankan, sebagai contoh, sudo synaptic .

SFTP

sshd mempunyai pelayan SFTP terbina dalam secara lalai. SFTP (SSH File Transfer Protocol) - Protokol SSH untuk memindahkan fail. Ia direka untuk menyalin dan melaksanakan operasi fail lain melalui sambungan yang boleh dipercayai dan selamat. Sebagai peraturan, protokol SSH2 digunakan sebagai protokol asas yang menyediakan sambungan. Untuk mendayakan sokongan SFTP, tambah baris ke sshd_config

Subsistem sftp /usr/lib/openssh/sftp-server

Secara lalai, sokongan SFTP didayakan.

Menggunakan kriteria. Arahan perlawanan

Menyediakan klien SSH

Log masuk menggunakan kunci dianggap paling selamat, dan dalam kebanyakan kes ciri ini didayakan pada bahagian pelayan, jadi tiada hak superuser diperlukan untuk menggunakannya. Pada mesin pelanggan kami menjana kunci:

ssh-keygen -t rsa

Kami digesa untuk memasukkan kata laluan untuk melindungi fail utama (ternyata berguna jika fail itu jatuh ke tangan yang salah). Jika kita akan melaksanakan skrip melalui SSH, maka kita biarkan ia kosong. Kami memindahkan kunci awam ke pelayan dengan arahan

Ssh-copy-id -i ~/ .ssh/ id_rsa.pub pengguna@ pelayan

Dah tu, boleh masuk.

Apabila ssh berjalan pada port bukan standard:

Ssh-copy-id -i ~/ .ssh/ id_rsa.pub "-p port user@server"

Jika ralat berlaku: Port buruk "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"

cuba letakkan parameter dalam petikan:

Ssh-copy-id "-i /home/user/.ssh/id_rsa.pub "-p port user@server""

Ia adalah mudah untuk menggunakan utiliti skrin apabila menyambung ke sistem jauh.

Menyediakan direktori ssh jauh dalam Nautilus

Memasang direktori jauh menggunakan sshfs

Memasang direktori jauh ke direktori tempatan

sshfs user@ hostingserver.ru:/ home/ userdir ~/ sshfsdir

Menyahlekap

Fusermount -u ~/ sshsfdir

Alias ​​SSH

Apabila menggunakan beberapa pelayan dengan parameter akses yang berbeza (port bukan standard, nama hos yang panjang, log masuk selain yang tempatan, dll.), kadangkala membosankan untuk memasukkan semua tetapan sambungan sekali lagi setiap kali. Untuk memudahkan ini, anda boleh menggunakan alias.

Tetapan disimpan dalam ~/.ssh/config untuk seorang pengguna dan dalam /etc/ssh/ssh_config secara global untuk semua pengguna.

Contoh konfigurasi. Berbilang pelayan boleh diterangkan. Butiran lanjut dalam lelaki ssh_config(jangan dikelirukan dengan sshd_config)

Nama Alias ​​Hos # Nama hos arbitrari Nama Hos 1.2.3.4 # Anda boleh menentukan kedua-dua IP dan nama hos (jika DNS sedang berjalan) Nama Pengguna Anda # Jika pengguna tidak sepadan dengan pengguna tempatan Port YourSSHPort # Jika port bukan standard

Selepas ini anda boleh menyambung ke pelayan dengan arahan

ssh Nama Alias

ejen ssh

Mendiagnosis masalah sambungan

    Analisis log sambungan:

ssh -vvv pengguna@ hos

    Analisis fail konfigurasi klien dan pelayan.

Lokasi fail konfigurasi boleh didapati dalam

Lelaki ssh lelaki sshd

Menggunakan kad pintar

1. Mencipta sijil dan mengeksport kunci awam, serta bahagian klien pada Windows + Putty SC, diterangkan di tapak web: http://habrahabr.ru/post/88540/ Alat tambah Pengurus Kunci yang diterangkan terdapat hanya tersedia dalam versi Firefox yang lebih lama. Diuji pada versi 3.5 untuk Windows. Pautan terus ke add-on: https://addons.mozilla.org/ru/firefox/addon/key-manager/

2. Menyediakan pelayan. Anda perlu memastikan bahawa konfigurasi sshd anda membenarkan pengesahan menggunakan kunci awam. Untuk melakukan ini, anda perlu menentukan nilai parameter "PubkeyAuthentication" kepada "yes" dalam fail "sshd_config". Kemudian kami menambah kunci awam kami yang diperoleh sebelum ini (dalam satu baris) ke fail "~/.ssh/authorized_keys". Sila ambil perhatian bahawa fail ".ssh/authorized_keys" terletak dalam direktori utama pengguna yang kemudiannya akan log masuk menggunakan kunci awam.

3. Bahagian pelanggan pada Linux. Anda perlu membina semula pakej OpenSSH tanpa parameter. Ia hanya disyorkan untuk menentukan awalan direktori, contohnya –prefix=/usr. Anda juga harus ambil perhatian bahawa fail konfigurasi akan berada dalam /usr/etc. Sebelum anda memulakan, anda memerlukan pakej berikut: opensc-lite-devel, zlib-devel, openssl-devel. Pasang pemacu kad pintar. Untuk kemudahan, dalam konfigurasi ssh_config (jangan dikelirukan dengan sshd_config), nyatakan laluan ke perpustakaan pkcs: PKCS11Provider=<путь к библиотеке>

4. Pada klien, jalankan ssh user@host Jika kad pintar (token) disambungkan, anda akan digesa untuk kata laluan dan log masuk ke sesi SSH.

Masalah yang mungkin berlaku semasa penggunaan

Kombinasi kekunci biasa Ctrl + S, digunakan dalam banyak editor untuk menyimpan pembetulan, apabila bekerja dalam terminal dengan pelayan ssh, akan membawa kepada pelaksanaan perintah XOFF, yang secara dangkal menyerupai pembekuan sesi. Walau bagaimanapun, ia tidak. Pelayan terus menerima aksara input dan arahan, tetapi tidak memaparkannya pada skrin. Untuk keluar dari kesulitan ini, hanya gunakan kombinasi Ctrl + Q, dengan itu menghidupkan semula mod XON.

Pautan

Iaitu, pengguna1 boleh didaftarkan untuk dirinya sendiri - dalam fail /home/user1/.ssh/keys) dan untuk pengguna lain, yang membolehkannya log masuk dari komputernya "di bawah dirinya" dan di bawah "yang lain"

Apakah SSH?

SSH(Bahasa Inggeris Secure SHell - “secure shell”) ialah protokol rangkaian peringkat sesi yang membenarkan kawalan jauh sistem pengendalian dan terowong sambungan TCP (contohnya, untuk pemindahan fail). Fungsinya serupa dengan protokol Telnet dan rlogin, tetapi, tidak seperti mereka, ia menyulitkan semua lalu lintas, termasuk kata laluan yang dihantar.

Secara umum, alat yang paling selamat (atau salah satu daripada..) untuk capaian jauh melalui IP dan web. Untuk apa itu? Katakan anda perlu mendapatkan data pada pelayan, walaupun akses disekat daripada IP anda.

Program untuk bekerja dengan SSH

Arahan fail

ls - senarai fail dan direktori
ls -al - senarai berformat dengan direktori dan fail tersembunyi
cd dir - tukar direktori kepada dir
cd - tukar ke direktori rumah
pwd - tunjukkan direktori semasa
mkdir dir - buat dir direktori
fail rm - padam fail
rm -r dir - alih keluar dir direktori
rm -f fail - paksa padam fail
rm -rf dir - padam secara paksa dir direktori *
cp file1 file2 - salin file1 ke file2
cp -r dir1 dir2 - salin dir1 ke dir2; akan membuat direktori dir2 jika ia tidak wujud
mv file1 file2 - namakan semula atau pindahkan file1 ke file2. jika file2 ialah direktori sedia ada, alihkan file1 ke direktori file2
Pautan fail ln -s - buat pautan pautan simbolik ke fail fail
sentuh fail - buat fail
cat > fail - input standard terus ke fail
lebih fail — memaparkan kandungan fail
fail kepala - cetak 10 baris pertama fail
fail ekor - cetak 10 baris terakhir fail
fail tail -f - cetak kandungan fail semasa ia berkembang, bermula dari 10 baris terakhir
lihat fail - paparkan fail pada skrin

PS Dalam salah satu jawatan saya yang akan datang, saya akan memberitahu anda apa yang menyebabkan saya masuk ke SSH di tempat pertama)

Menggunakan protokol SSH yang selamat, pentadbir menyambung ke pelayan mereka untuk kerja yang selamat. Mari kita lihat dengan lebih dekat ciri-ciri protokol ini:

Apakah protokol SSH

Protokol SSH (dari bahasa Inggeris. Shell Selamat) ialah protokol rangkaian kriptografi yang direka untuk akses jauh ke sistem pengendalian dan kawalan jauh selamat dalam rangkaian yang tidak dilindungi (contohnya, melalui Internet).

SSH menyediakan saluran komunikasi yang selamat antara pelanggan dan pelayan, di mana anda boleh memindahkan data (mel, video, fail), bekerja pada baris arahan, dan melancarkan program dari jauh, termasuk yang grafik. Pelayan SSH mesti dipasang pada sistem pengendalian jauh. Pelanggan SSH mesti berjalan pada mesin dari mana sambungan jauh akan dibuat.

Ciri utama yang tersedia apabila menggunakan protokol SSH:

  • Pindahkan sebarang data melalui sambungan SSH yang selamat, termasuk pemampatan data untuk penyulitan berikutnya.
  • X11 Forwarding ialah mekanisme yang membolehkan anda menjalankan program pelayan UNIX/Linux dalam bentuk cangkerang grafik, seperti dalam Windows (gunakan Sistem Tetingkap X).
  • Port forwarding ialah pemindahan trafik yang disulitkan antara port mesin yang berbeza.

Keselamatan sambungan SSH dipastikan oleh:

  • penyulitan data menggunakan salah satu algoritma sedia ada
  • pengesahan pelayan dan klien menggunakan salah satu daripada beberapa kaedah yang tersedia
  • kehadiran fungsi protokol tambahan yang bertujuan untuk mencegah pelbagai serangan penggodam

Pengesahan pelayan menyediakan perlindungan terhadap:

  • menggodam dengan menggantikan alamat IP (IP-spoofing), apabila satu hos jauh menghantar paket bagi pihak hos jauh yang lain
  • penggantian rekod DNS (DNS-spoofing), apabila rekod pada pelayan DNS diganti, menyebabkan sambungan diwujudkan dengan hos yang dinyatakan dalam rekod palsu, bukannya yang diperlukan
  • memintas kata laluan yang jelas dan data lain yang dihantar dalam teks yang jelas melalui sambungan yang telah ditetapkan

Hari ini, terdapat dua versi protokol SSH (SSH-1 dan SSH-2), dan versi kedua ditambah baik dan dikembangkan berbanding yang pertama. Sebagai contoh, versi kedua tahan terhadap serangan MITM (man-in-the-middle, man-in-the-middle). Terdapat juga dua edisi protokol ini: versi terbuka (percuma) dan versi komersial (berbayar). Versi percuma - OpenSSH - dibina ke dalam semua sistem pengendalian seperti UNIX dalam bentuk pelanggan SSH standard dan utiliti pelayan SSH.

Pelaksanaan komersial protokol SSH - Keselamatan Komunikasi SSH - telah dibangunkan oleh organisasi dengan nama yang sama. Ia mempunyai perbezaan kecil daripada versi percuma, seperti ketersediaan sokongan teknikal komersil, kehadiran alat pengurusan web, dll. Set asas perintah dan keupayaan adalah hampir sama untuk kedua-dua produk.

Pelbagai klien dan cengkerang SSH telah dikeluarkan untuk OS Windows, yang paling biasa ialah PuTTY dan WinSCP percuma. Sistem pengendalian lain juga mempunyai pelanggan SSH mereka sendiri.

Apakah protokol SFTP

Protokol SFTP (dari bahasa Inggeris. Protokol Pemindahan Fail SSH) ialah protokol rangkaian lapisan aplikasi yang direka untuk memindahkan fail dan tindakan lain dengannya melalui sambungan yang boleh dipercayai sedia ada. Protokol ini dibangunkan sebagai lanjutan SSH-2, bertujuan untuk operasi fail melalui saluran selamat, tetapi juga boleh berfungsi dengan protokol lain yang menyediakan sambungan selamat antara pelayan dan klien. Dalam erti kata lain, untuk bekerja dengan pasti melalui protokol SFTP, anda mesti mempunyai sambungan selamat yang mantap (contohnya, SSH), yang mengesahkan pelanggan dan pelayan dan menetapkan fakta kebolehpercayaan mereka, kerana protokol SFTP itu sendiri tidak mengesahkan dan tidak tidak memberikan keselamatan.

SFTP mempunyai beberapa kelebihan berbanding pendahulunya - FTP dan SCP - seperti mengganggu pemindahan fail, memadam, menyambung semula pemindahan, mengaitkan fail yang dipindahkan dengan atribut asas seperti cap tarikh/masa, serta kebebasan platform yang lebih tinggi.

Protokol SFTP dilaksanakan melalui pelayan SFTP dan klien SFTP, yang merupakan subsistem OpenSSH.

Untuk apakah protokol SSH dan SFTP digunakan?

Selalunya, protokol SSH dan SFTP digunakan untuk bekerja dari jauh dengan sistem pengendalian atau memindahkan sejumlah besar fail.

Sebagai contoh, pelanggan menyewa pelayan atau sebahagian daripada ruang pelayan. Terdapat keperluan untuk memindahkan data pelanggan sedia ada di sana, sebagai contoh, tapak web atau fail mel. Pembekal mesti memastikan kebolehpercayaan dan kelajuan pertukaran data dengan pelayannya, terutamanya apabila ia melibatkan jumlah maklumat yang besar dan kerahsiaannya yang tinggi. Dalam kes ini, pelayan SSH (dengan protokol SFTP terbina dalam) dipasang pada mesin jauh (dalam kes ini, pelayan maya), dan klien SSH dipasang pada komputer klien. Terowong SSH dicipta dan pertukaran data antara pelanggan dan pelayan jauh dijalankan melalui sambungan selamat dengan semua kelebihan protokol yang diterangkan di atas.

SSH juga boleh digunakan untuk kerja jauh melalui sambungan selamat dengan pelbagai perkhidmatan pembekal, seperti perisian, sistem pengendalian, dsb.

Bagaimana SSH berfungsi

Protokol SSH menjalankan satu set program yang melakukan pelbagai tindakan pada sistem pengendalian jauh. Sebagai contoh, program sshd menyediakan fungsi pelayan SSH dan mesti dijalankan pada pelayan SSH. Program ssh berjalan pada klien SSH dan membolehkan anda membuat sambungan dengan hos jauh, mendaftar padanya, dan bekerja dengan mesin jauh melalui sambungan SSH.

Untuk melancarkan program protokol SSH tertentu, terdapat arahan khas dengan satu set pilihan yang berbeza. Arahan ini mungkin berbeza-beza bergantung pada sistem pengendalian klien dan shell klien SSH yang anda gunakan. Perintah dilancarkan sama ada dari baris arahan, dalam kes sistem seperti UNIX, atau melalui antara muka grafik dalam cengkerang SSH yang sepadan.

Bagaimana untuk menyambung melalui SSH

Jika komputer anda menjalankan Windows, dan mesin jauh adalah sistem seperti UNIX (contohnya, Linux), maka anda boleh menggunakan PuTTY untuk mewujudkan sambungan SSH. Program percuma untuk Windows ini terdiri daripada satu fail boleh laku dan tidak memerlukan pemasangan.

Untuk mewujudkan sambungan menggunakan PuTTY, anda perlu melakukan perkara berikut:

Lancarkan PuTTY (putty.exe).


Secara lalai, tiada tetapan tambahan diperlukan; anda boleh memastikan bahawa port 22 ditentukan dan jenis sambungan ialah SSH. Dalam medan Nama Hos (atau alamat IP) anda perlu memasukkan nama komputer jauh atau alamat IPnya dan klik butang Buka.


Amaran keselamatan PuTTY mungkin muncul, tetapi jika anda yakin bahawa hos itu boleh dipercayai, anda harus mengklik Ya dan meneruskan sambungan.


Dalam baris arahan yang muncul, anda perlu memasukkan nama pengguna di mana anda akan log masuk ke komputer jauh.


Dalam baris seterusnya anda perlu memasukkan kata laluan untuk pengguna ini. Apabila anda memasukkan kata laluan anda, tiada aksara muncul pada baris arahan, jadi anda hanya menaip kata laluan dan tekan Enter. Jika nama pengguna dan kata laluan yang salah dimasukkan, ralat "Akses ditolak" akan dipaparkan; jika sambungan berjaya, baris arahan komputer jauh akan disediakan.


Kami membentangkan kepada anda kursus baharu daripada pasukan The Codeby- "Ujian penembusan Aplikasi Web dari awal." Teori am, penyediaan persekitaran kerja, kabur pasif dan cap jari, Kabur aktif, Keterdedahan, Pasca eksploitasi, Alat, Kejuruteraan Sosial dan banyak lagi.


Apakah SSH dan mengapa anda memerlukannya?

Secure Shell (SSH) ialah protokol rangkaian yang menyediakan fungsi shell kepada mesin jauh melalui saluran selamat. SSH datang dengan pelbagai peningkatan keselamatan, termasuk pengesahan pengguna/hos, penyulitan data dan integriti data, menjadikan serangan popular seperti mencuri dengar, penipuan DNS/IP, pemalsuan data dan rampasan sambungan menjadi mustahil. dsb. Pengguna Ftp, telnet atau rlogin yang menggunakan protokol yang memindahkan data dalam teks yang jelas sangat disyorkan untuk bertukar kepada SSH.

OpenSSH ialah pelaksanaan sumber terbuka protokol SSH yang membolehkan anda menyulitkan sambungan rangkaian anda melalui set program. Jika anda ingin mempunyai SSH pada Linux, anda boleh memasang OpenSSH, yang terdiri daripada pelayan OpenSSH dan pakej klien.

Pakej pelayan/klien OpenSSH disertakan dengan utiliti berikut:

  • Pelayan OpenSSH: sshd (daemon SSH)
  • Pelanggan OpenSSH: scp (salinan jauh selamat), sftp (pemindahan fail selamat), slogin/ssh (log masuk jauh selamat), ssh-add (penyiapan kunci peribadi), ssh-agent (agen pengesahan), ssh-keygen (pengurusan kunci pengesahan ).

Memasang pelayan dan klien OpenSSH pada Linux

Jika anda ingin memasang pelayan/pelanggan OpenSSH dan mengkonfigurasi pelayan OpenSSH untuk bermula secara automatik, ikut arahan berikut, yang berbeza-beza bergantung pada pengedaran.

Debian, Ubuntu atau Linux Mint

$ sudo apt-get install openssh-server openssh-client

Pada sistem berasaskan Debian, setelah dipasang, OpenSSH akan bermula secara automatik semasa but. Jika atas sebab tertentu pelayan OpenSSH tidak bermula secara automatik pada permulaan sistem, anda boleh menjalankan arahan berikut untuk menambahkan ssh secara eksplisit pada but semasa permulaan sistem.

$ sudo update-rc.d ssh lalai

Fedora atau CentOS/RHEL 7

$ sudo yum -y install openssh-server openssh-clients $ sudo systemctl mulakan perkhidmatan sshd $ sudo systemctl enable sshd.service

CentOS/RHEL 6

$ sudo yum -y install openssh-server openssh-clients $ sudo service sshd start $ sudo chkconfig sshd on

Arch Linux

$ sudo pacman -Sy openssh $ sudo systemctl mulakan perkhidmatan sshd $ sudo systemctl dayakan sshd.service

Menyediakan pelayan OpenSSH

Jika anda ingin mengkonfigurasi pelayan OpenSSH, anda boleh mengedit fail konfigurasi seluruh sistem yang terletak di /etc/ssh/sshd_config.

Terdapat beberapa pilihan OpenSSH yang mungkin menarik:

Secara lalai, sshd mendengar pada port 22 dan mendengar sambungan ssh masuk. Dengan menukar port lalai untuk ssh, anda boleh menghalang pelbagai serangan penggodam automatik.

ListenAddress 192.168.1.1

Jika mesin anda mempunyai lebih daripada satu antara muka rangkaian fizikal, anda mungkin ingin menyemak yang mana satu dikaitkan dengan sshd, untuk ini anda boleh menggunakan pilihan ListenAddress. Pilihan ini membantu meningkatkan keselamatan dengan mengehadkan SSH masuk kepada antara muka tertentu sahaja.

HostKey /etc/ssh/ssh_host_key

Pilihan HostKey menentukan di mana kunci hos peribadi berada.

PermitRootLogin no

Pilihan PermitRootLogin – sama ada root boleh log masuk ke sistem melalui ssh.

BenarkanPengguna alice bob

Menggunakan pilihan AllowUsers anda boleh melumpuhkan perkhidmatan ssh secara terpilih untuk pengguna Linux tertentu. Anda boleh menentukan berbilang pengguna, dipisahkan oleh ruang.

Selepas /etc/ssh/sshd_config telah ditukar, pastikan anda memulakan semula perkhidmatan ssh.

Untuk memulakan semula OpenSSH pada Debian, Ubuntu atau Linux Mint:

$ sudo /etc/init.d/ssh mulakan semula

Untuk memulakan semula OpenSSH pada Fedora, CentOS/RHEL 7 atau Arch Linux:

$ sudo systemctl mulakan semula sshd.service

Untuk memulakan semula OpenSSH pada CentOS/RHEL 6:

$ sudo service sshd mulakan semula

Bagaimana untuk menyambung ke SSH

Menyambung ke SSH daripada Linux

Pengguna Linux tidak perlu memasang program tambahan.

Menyambung ke SSH daripada Windows

Untuk Windows, ramai orang mengesyorkan dan berjaya menggunakan PuTTY. Saya tidak menentang program ini, tetapi saya sendiri lebih suka dan mengesyorkan Cygwin.

Cygwin bukan sekadar pelanggan SSH. Ia adalah penggabung berkuasa yang menyokong banyak arahan Linux. Sebagai contoh, Cygwin menjadikannya sangat mudah untuk membuat sijil SSL (sama seperti Linux). Di Windows, untuk membuat sijil yang ditandatangani sendiri, anda perlu menari dengan rebana. Cygwin sangat mudah untuk menggunakan cURL (tidak perlu memasang apa-apa secara berasingan), dsb. Mereka yang kekurangan baris arahan dan program Linux pada Windows akan mencari saluran keluar di Cygwin.

Memasang Cygwin adalah mudah. Pergi ke tapak web rasmi dan muat turun versi 32-bit atau 64-bit.

Fail kecil akan dimuat turun - ini ialah pemasang. Pemasang grafik. Walaupun ia mengandungi sejumlah besar pilihan, semuanya agak mudah dan banyak yang biasa daripada pemasang grafik lain. Jika ada yang tidak jelas, cuma klik "Seterusnya". Mungkin hanya tetingkap berikut boleh menyebabkan kekeliruan:

Semua elemen yang tersedia untuk pemasangan dibentangkan di sini. Kita tidak perlu memahami mereka sekarang. Kerana yang paling popular sudah ditandakan untuk pemasangan. Dan jika ada sesuatu yang hilang pada masa hadapan, anda boleh memasang dengan mudah apa yang anda perlukan.

Sambungan SSH (biasa untuk Linux dan Windows)

Pengguna Linux membuka konsol, pengguna Windows menaip Cygwin.

SSH memerlukan maklumat berikut untuk menyambung:

  • IP atau nama hos
  • nombor port
  • Nama pengguna
  • kata laluan pengguna

Dua daripada parameter ini SSH boleh meneka: nama pengguna dan nombor port. Jika port tidak ditentukan, port lalai diandaikan. Jika pengguna tidak dinyatakan, maka nama yang sama digunakan seperti pada sistem dari mana sambungan dibuat. Sebagai contoh, alamat hos untuk sambungan ialah 192.168.1.36. Jika saya mendail

Ssh 192.168.1.36

Saya melihat perkara berikut

Alex@MiAl-PC ~ $ ssh 192.168.1.36 Ketulenan hos "192.168.1.36 (192.168.1.36)" tidak dapat dipastikan. Cap jari kunci ECDSA ialah SHA256:sIxZeSuiivoEQ00RXAQHxylxu8 pasti anda ingin menyambungkan Arewxu8. ( Ya tidak)?

Memandangkan saya menyambung kepada hos buat kali pertama, ia adalah hos yang tidak dikenali. Mereka bertanya kepada saya jika saya mahu meneruskan. Saya mendail ya:

Amaran: Menambahkan "192.168.1.36" (ECDSA) secara kekal pada senarai hos yang diketahui. [e-mel dilindungi] kata laluan:

Okey, hos 192.168.1.36 telah ditambahkan pada senarai hos biasa. Saya sedang diminta untuk kata laluan untuk pengguna Alex. Kerana tidak ada pengguna sedemikian pada pelayan dengan SSH, tetapi saya klik Ctrl+C(untuk memecahkan) dan masukkan arahan bersama-sama dengan nama pengguna sistem jauh. Pengguna dimasukkan sebelum alamat mesin jauh dan dipisahkan daripada alamat dengan simbol @. Simbol @ dalam bahasa Inggeris dibaca sebagai at dan boleh diterjemahkan sebagai "dalam". Itu. rekod [e-mel dilindungi] boleh ditafsirkan sebagai "pengguna mial pada mesin 192.168.1.36".

Ssh [e-mel dilindungi]

Jemputan Alex@MiAl-PC telah digantikan dengan jemputan mial@mint. Ini bermakna kita sudah berada di mesin jauh, iaitu kita telah membuat sambungan. Jika anda perlu menentukan port (jika ia berbeza daripada yang standard), maka port mesti ditentukan selepas suis -p. Contohnya seperti ini:

Ssh [e-mel dilindungi]-hlm 10456

Selepas menyambung, kami disambut dengan sesuatu seperti ini:

Linux mint 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 Program yang disertakan dengan sistem Debian GNU/Linux adalah perisian percuma; syarat pengedaran yang tepat untuk setiap program diterangkan dalam fail individu dalam /usr/share/doc/*/copyright. Debian GNU/Linux datang dengan BENAR-BENAR TIADA WARANTI, setakat yang dibenarkan oleh undang-undang yang berkenaan. Log masuk terakhir: Sel 16 Jun 15:32:25 2015 dari 192.168.1.35

Ia berikutan bahawa mesin jauh ialah Linux Mint, dengan kernel 3.16, versi 64-bit. Maklumat penting juga ialah masa log masuk terakhir dan alamat IP dari mana sambungan itu berasal. Jika masa dan IP tidak biasa kepada anda dan anda adalah satu-satunya pengguna, maka sistem anda terjejas dan anda perlu mengambil tindakan yang sewajarnya.

Mari taip beberapa arahan untuk memastikan di mana kita berada dan siapa kita: pwd, uname -a dan lain-lain.:

Untuk menamatkan sesi (log keluar), dail

Atau klik Ctrl+D.

Log masuk ke SSH tanpa memasukkan kata laluan

Pertama, ia lebih mudah. Kedua, ia lebih selamat.

Pertama, kita perlu mencipta kunci rsa. Jika anda seorang pengguna Linux, maka anda baik-baik saja. Jika anda pengguna Windows, tetapi anda tidak mendengar nasihat saya dan memilih PuTTY, maka anda menghadapi masalah dan fikir sendiri bagaimana untuk menyelesaikannya. Jika anda mempunyai Cygwin, maka semuanya juga teratur.

Jika anda berjaya log masuk ke sistem jauh, log keluar. Selepas itu, taip

Ssh-keygen -t rsa

Kami diminta untuk nama fail, kami tidak perlu memasukkan apa-apa, nama lalai akan digunakan. Ia juga meminta kata laluan. Saya tidak memasukkan kata laluan.

Sekarang pada mesin jauh kita perlu mencipta direktori .ssh. Melaksanakan arahan pada mesin jauh akan dibincangkan di bawah. Buat masa ini, salin sahaja arahan itu, jangan lupa untuk menukar alamat IP dan nama pengguna kepada anda sendiri:

Ssh [e-mel dilindungi] mkdir.ssh

Sekarang kita perlu menyalin kandungan fail id_rsa.pub ke mesin jauh. Ini sangat mudah dilakukan (jangan lupa untuk menukar data kepada anda sendiri):

Cat .ssh/id_rsa.pub | ssh [e-mel dilindungi]"kucing >> .ssh/authorized_keys"

Sekarang kami hanya log masuk dan mereka tidak meminta kami untuk sebarang kata laluan lagi. Dan ia akan sentiasa seperti ini sekarang.

Melaksanakan arahan pada pelayan jauh tanpa membuat sesi shell

Selain membuka sesi shell pada sistem jauh, ssh juga membolehkan anda melaksanakan arahan individu pada sistem jauh. Sebagai contoh, untuk menjalankan arahan pokok pada hos jauh bernama remote-sys dan memaparkan keputusan pada sistem setempat, anda akan melakukan ini:

ssh pokok remote-sys

Contoh sebenar saya:

Ssh [e-mel dilindungi] pokok

Menggunakan teknik ini anda boleh melakukan perkara yang menarik, seperti menjalankan arahan ls pada sistem jauh dan mengalihkan output ke fail pada sistem tempatan:

ssh remote-sys "ls *" > dirlist.txt

Contoh sebenar:

Ssh [e-mel dilindungi]"ls *" > dirlist.txt cat dirlist.txt

Perhatikan petikan tunggal dalam arahan di atas. Ini kerana kami tidak mahu pengembangan laluan dilakukan pada mesin tempatan; kerana kami memerlukan pelaksanaan ini pada sistem jauh. Selain itu, jika kita ingin mengubah hala keluaran standard ke fail pada mesin jauh, kita boleh meletakkan pernyataan ubah hala dan nama fail di dalam petikan tunggal:

ssh remote-sys "ls * > dirlist.txt"

Memindahkan output standard dari mesin tempatan ke mesin jauh melalui ssh

Pilihan yang sama menarik untuk melaksanakan arahan diberikan sedikit lebih tinggi:

Cat .ssh/id_rsa.pub | ssh [e-mel dilindungi]"kucing >> .ssh/authorized_keys"

  • Arahan kucing membaca baris demi baris dan memaparkan kandungan fail .ssh/id_rsa.pub yang terletak pada mesin tempatan.
  • | (paip) menghantar apa yang akan muncul pada output standard kepada arahan lain.
  • Daripada arahan yang akan memproses rentetan yang dihantar kepadanya, sambungan dibuat ke sistem jauh (ssh [e-mel dilindungi]).
  • Sistem jauh menerima talian yang perintah kucing >> .ssh/authorized_keys disediakan. Itu. kandungan output standard ditulis baris demi baris ke fail .ssh/authorized_keys yang terletak pada mesin jauh.

Membuka program grafik yang terletak pada komputer jauh

Helah seterusnya memerlukan dua komputer Linux. Malangnya, walaupun Cygwin tidak dapat mengendalikan helah ini. Selain itu, kedua-dua sistem Linux mesti mempunyai antara muka pengguna grafik.

Terowong dengan SSH

Antara perkara lain yang berlaku apabila sambungan diwujudkan dengan hos jauh melalui SSH ialah penciptaan terowong yang disulitkan yang terbentuk antara sistem tempatan dan jauh. Lazimnya, terowong ini digunakan untuk memastikan arahan yang ditaip pada mesin tempatan dihantar dengan selamat ke mesin jauh, dan hasilnya juga dihantar kembali dengan selamat.

Sebagai tambahan kepada fungsi asas ini, protokol SSH membenarkan kebanyakan jenis trafik dihantar melalui terowong yang disulitkan, mewujudkan sejenis VPN (rangkaian peribadi maya) antara sistem tempatan dan jauh.

Mungkin ciri ini yang paling biasa digunakan ialah keupayaan untuk menyiarkan trafik sistem X Window. Pada sistem yang menjalankan pelayan X (ini adalah mesin yang mempunyai antara muka pengguna grafik), adalah mungkin untuk menjalankan program klien X (aplikasi grafik) pada sistem jauh dan melihat hasil operasinya pada sistem tempatan. Ia mudah dilakukan. Sebagai contoh, saya ingin menyambung ke remote-sys hos jauh dan padanya saya mahu menjalankan program xload. Pada masa yang sama, saya akan dapat melihat output grafik program ini pada komputer tempatan. Ini dilakukan seperti ini:

ssh -X remote-sys

Contoh sebenar:

Ssh -X [e-mel dilindungi] gedit

Itu. SSH bermula dengan suis -X. Dan kemudian program hanya bermula. Lihat pada tangkapan skrin.

Saya menggunakan Kali Linux. Saya berjaya log masuk ke komputer jauh melalui SSH. Selepas itu saya menjalankan program gedit. Program ini mungkin tidak ada pada Kali Linux, tetapi ia pasti ada pada Linux Mint, yang saya sambungkan. Saya dapat melihat hasil program ini pada skrin seolah-olah program itu berjalan secara tempatan. Tetapi sekali lagi, saya mahu anda memahami perkara ini, tiada program gedit berjalan pada komputer tempatan. Jika saya ingin menyimpan hasil gedit (atau mana-mana program lain yang dibuka dengan cara ini), ternyata ia berfungsi dalam persekitaran komputer jauh, melihat sistem failnya, dll. Ini mudah apabila anda ingin mengkonfigurasi komputer jauh menggunakan antara muka grafik .

Anda akan belajar cara memindahkan imej dari seluruh desktop dalam artikel yang sama kemudian, dalam bahagian "Cara mengkonfigurasi VNC melalui SSH".

Pada sesetengah sistem, helah ini memerlukan penggunaan pilihan -Y dan bukannya pilihan -X.

Menyalin dari/ke komputer jauh (scp dan sftp)

scp

Pakej OpenSSH juga termasuk dua program yang menggunakan terowong SSH yang disulitkan untuk menyalin fail melalui rangkaian. Program pertama - scp(“salinan selamat”) - digunakan lebih kerap, seperti program cp serupa untuk menyalin fail. Perbezaan yang paling ketara ialah sumber fail boleh menjadi hos jauh diikuti dengan titik bertindih dan lokasi fail. Sebagai contoh, jika kami ingin menyalin dokumen yang dipanggil document.txt dari direktori rumah kami ke remote-sys dalam direktori kerja semasa pada sistem setempat kami, kami boleh melakukan ini:

Scp remote-sys:document.txt . document.txt 100% 177 0.2KB/s 00:00

Contoh sebenar:

# padam fail pada mesin tempatan jika ia wujud rm dirlist.txt # buat fail pada mesin jauh ssh [e-mel dilindungi]"ls * > dirlist.txt" # semak kehadirannya ssh [e-mel dilindungi]"ls -l" # salin ke scp mesin tempatan [e-mel dilindungi]:dirlist.txt. # semak kandungannya cat dirlist.txt

Untuk menyalin fail dari mesin tempatan ke mesin jauh:

scp local_file remote-sys:.

Contoh sebenar

# buat fail baharu sentuh nfile.txt # hantar fail scp nfile.txt [e-mel dilindungi]:. nfile.txt 100% 0 0.0KB/s 00:00 # semak kehadiran fail pada mesin jauh ssh [e-mel dilindungi]"ls -l"

Dalam arahan hantar:

  • nfile.txt - nama fail,
  • [e-mel dilindungi]— nama pengguna dan hos jauh,
  • . (titik) bermakna bahawa fail perlu disalin ke direktori kerja semasa pada pelayan jauh, tetapi nama fail akan kekal sama, iaitu nfile.txt

Memo:

Untuk menyalin fail dari B ke A apabila log masuk ke B:

scp /path/to/file username@a:/path/to/destination

Menyalin fail dari B ke A apabila log masuk ke A:

nama pengguna scp@b:/path/to/file /path/to/destination

sftp

Program kedua untuk menyalin fail melalui SSH ialah sftp. Seperti namanya, ia adalah penggantian program ftp yang selamat. sftp berfungsi seperti program ftp asal. Walau bagaimanapun, bukannya menghantar teks yang jelas, ia menggunakan terowong SSH yang disulitkan. Kelebihan penting sftp berbanding ftp ialah ia tidak memerlukan pelayan FTP yang sedang berjalan pada hos jauh. Ia hanya memerlukan pelayan SSH. Ini bermakna bahawa mana-mana mesin jauh yang disambungkan melalui klien SSH juga boleh digunakan sebagai pelayan seperti FTP. Berikut adalah contoh sesi:

Alex@MiAl-PC ~ $ sftp [e-mel dilindungi] Disambungkan ke 192.168.1.36. sftp> ls dirlist.txt newfile.txt nfile.txt temp Video Dokumen Muat Turun Imej Muzik Templat Desktop Awam sftp> lls dirlist.txt nfile.txt sftp> ls temp temp/TakeMeHome sftp> cd temp/ sftp> dapatkan TakeMeHome Fetching /home / mial/temp/TakeMeHome ke TakeMeHome sftp> selamat tinggal

Protokol SFTP disokong oleh banyak pengurus fail grafik yang boleh didapati dalam pengedaran Linux. Menggunakan kedua-dua Nautilus (GNOME) dan Konqueror (KDE), kita boleh memasukkan URI (pautan) bermula dengan sftp:// dalam bar lompat dan bekerja dengan fail yang terletak pada sistem jauh yang menjalankan pelayan SSH.

Penjamin adalah perantara yang dipercayai antara Peserta semasa transaksi.


1. Maklumat am

SSH (Secure SHell) ialah protokol rangkaian yang membolehkan anda menyambung ke pelayan jauh dan melaksanakan arahan padanya, memuat turun fail dan membuat sambungan TCP terowong. Ciri utama ialah penyulitan maklumat yang dihantar. Secara lalai, pengehosan menggunakan penterjemah arahan bash.

2. Maklumat sambungan

Anda boleh mendapatkan maklumat untuk menyambung ke pelayan melalui SSH dan SFTP di bahagian " pelayan web" — « Kawalan Akses" — « SSH" panel kawalan (https://www.r01.ru, bahagian "Untuk pelanggan").

  • Alamat pelayan (hos): ssh.identifier.r01host.ru— ditunjukkan dalam blok "Nama domain".
  • "Pengecam"— nama unik untuk perkhidmatan pengehosan, ditunjukkan di bahagian atas panel kawalan di sebelah nombor kontrak.
  • Nama pengguna SSH (log masuk): pengecam.
  • Untuk mendapatkan kata laluan pengguna SSH, klik butang "Tukar kata laluan". Kata laluan baharu akan dipaparkan pada skrin. Untuk menghantar kata laluan ke alamat e-mel hubungan anda, tandai kotak "Nyatakan kata laluan dalam surat".

Untuk menyambung melalui SSH ke pelayan pengehosan, pasang klien ssh pada komputer anda.

  • Menyediakan pelanggan ssh PuTTY

Untuk memuat naik fail ke pengehosan anda, gunakan klien SFTP.

  • Akses kepada pelayan maya melalui SFTP

3. Bekerja dengan hosting menggunakan Midnight Commander.

Midnight Commander ialah pengurus fail dua panel. Mempunyai editor teks terbina dalam.

Untuk melancarkan Midnight Commander, sambungkan ke pengehosan anda melalui SSH dan masukkan arahan

Kekunci panas asas:

  • F1: Bantuan;
  • F3: Pemapar fail terbina dalam;
  • F4: Penyunting teks terbina dalam;
  • F5: Salin fail;
  • F6: Alihkan (namakan semula) fail;
  • F8: Padam fail;
  • F9: Paparkan menu lungsur turun;
  • F10: Keluar dari program;
  • Tab: Beralih antara panel;
  • Sisipkan: Tandakan fail untuk operasi berbilang fail, seperti menyalin.

4. Bekerja dengan pengehosan daripada baris arahan

4.1. Mendapatkan maklumat bantuan

Untuk mendapatkan maklumat latar belakang tentang arahan yang anda minati perintah taip pada baris arahan:

Untuk melengkapkan bantuan, tekan "q".

Anda biasanya boleh mendapatkan bantuan pantas untuk arahan dengan menjalankannya dengan pilihan --help atau -h:

4.2. Menavigasi sistem fail

Cetak direktori semasa:

Pergi ke direktori rumah pengguna:

Pergi ke direktori tmp yang terletak dalam direktori semasa:

Pergi ke direktori menggunakan laluan penuh /home/login/sitename.ru/docs (direktori akar tapak sitename.ru):

cd /home/login/sitename.ru/docs

Pergi ke direktori induk (satu tahap lebih tinggi):

Pergi ke direktori sebelumnya:

4.3. Lihat kandungan direktori

Cetak kandungan direktori semasa (kecuali fail tersembunyi):

Cetak semua kandungan direktori semasa dengan maklumat terperinci:

Cetak keseluruhan kandungan direktori tmp dengan maklumat terperinci:

Paparkan saiz direktori tmp:

4.4. Mencipta dan memadam fail dan direktori

Buat direktori baru foo dalam direktori semasa:

Buat struktur direktori foo/bar/baz dalam direktori semasa:

mkdir -p foo/bar/baz

Alih keluar direktori foo dalam direktori semasa. Direktori mesti kosong:

Padam direktori foo dengan semua fail dan subdirektori:

Buat fail kosong foo:

Padam fail foo:

4.5. Melihat dan menyunting kandungan fail

Lihat kandungan fail teks (fail log tapak) (Tekan “q” untuk keluar):

kurang nama tapak.ru/logs/access_log

Buka fail foo dalam editor teks:

4.6. Menyalin dan memindahkan fail

Salin fail foo ke bar fail:

Salin kandungan direktori lama ke direktori baharu:

Namakan semula fail foo kepada bar fail:

Alihkan fail foo ke direktori bar sedia ada bernama baz:

4.7. Menukar hak akses

Jadikan foo boleh laku:

Jadikan fail foo baca sahaja:

Menukar kebenaran untuk semua direktori yang bersarang di bawah direktori foo kepada 755:

cari foo -type d -exec chmod 755 () \;

Menukar kebenaran untuk semua fail bersarang dalam direktori foo kepada 644:

cari foo -type f -exec chmod 644 () \;

4.8. Pengurusan proses

Tunjukkan maklumat proses masa nyata (Tekan “q” untuk keluar):

Tunjukkan maklumat terperinci tentang semua proses yang sedang berjalan:

Menamatkan proses berdasarkan ID prosesnya (PID) 1234:

Menamatkan proses dengan namanya:

Mulakan semula pelayan web Apache:

~/etc/rc.d/httpd mulakan semula

Mulakan semula pelayan web Nginx:

~/etc/rc.d/nginx mulakan semula

4.9. Bekerja dengan arkib

Buat arkib bagi direktori dokumen:

tar -czf archive.tar.gz docs

Buka pembungkusan arkib archive.tar.gz:

tar -xzf archive.tgz

Buka pembungkusan arkib archive.zip:

unzip arkib.zip

Buka pek arkib archive.rar:

unrar x archive.rar

Buka pembungkusan arkib archive.gz:

arkib gunzip.gz

4.10. Cari fail

Cari antara fail tapak yang mengandungi teks "login.mysql" (alamat pelayan untuk mengakses pangkalan data):

grep -R "login.mysql" sitename.ru/docs

Cari fail bernama index.php dalam direktori dan subdirektori semasa.