Cara memanfaatkan sepenuhnya OpenSSH

Cara memanfaatkan sepenuhnya OpenSSH

OpenSsh adalah sambungan rangkaian dan alat log masuk jauh yang menyulitkan semua lalu lintas dengan selamat, yang asalnya dibangunkan oleh pemaju OpenBSD untuk digunakan dalam sistem operasi mereka. Memandangkan tumpuan utama pemaju OpenBSD terhadap keselamatan, tidak menghairankan bahawa OpenSsh dengan cepat menjadi pelaksanaan log masuk jauh standard untuk semua sistem operasi Linux dan Unix. OpenSsh menggunakan model pelayan klien dengan SSH arahan menyediakan fungsi pelanggan dan SSHD menyediakan fungsi pelayan.

Dalam tutorial ini anda akan belajar:

  • Cara memasang openssh
  • Cara log masuk ke cangkang terpencil
  • Cara menyalin fail antara mesin dengan SCP
  • Cara Mengaktifkan Pengesahan Berdasarkan Kunci dan Lumpuhkan Log Masuk Berdasarkan Kata Laluan
  • Cara menyimpan konfigurasi mesin yang sering diakses untuk sambungan yang lebih mudah
  • Cara memasang sistem fail jauh melalui protokal SSH
  • Cara Menggunakan Port Forwarding/Tunneling
  • Untuk mengakses mesin di belakang Nat/Firewall
  • Untuk membuat proksi web
Cara memanfaatkan OpenSSH - Petua & Trik

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Sistem berasaskan Red, Red Hat berasaskan, dan berasaskan gerbang secara eksplisit dilindungi, tetapi OpenSsh Suite adalah pengedaran bebas dan semua arahan harus berfungsi untuk sebarang pengedaran yang menggunakan SystemD kerana ia adalah sistem init.
Perisian OpenSSH
Yang lain Keistimewaan root untuk mengubah suai fail konfigurasi
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Memasang OpenSSH

Sebilangan besar pengagihan akan menyediakan pilihan untuk memasang OpenSSH semasa pemasangan awal mereka, tetapi masih boleh dipasang secara manual jika pilihan ini tidak dipilih. Pada sistem berasaskan Debian dan Red Hat, anda perlu memasang pelayan dan klien secara berasingan, sedangkan pada sistem berasaskan gerbang klien dan pelayan dipasang sebagai satu pakej (lihat contoh di bawah). Perhatikan bahawa jika anda menggunakan firewall, pastikan untuk membuka port 22 untuk trafik masuk pada mana -mana mesin yang anda ingin gunakan sebagai pelayan.

Mengenai sistem berasaskan Debian

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


Pada sistem berasaskan topi merah (nota: pada fedora versi 22 atau lebih baru menggantikan yum dengan dnf)

$ sudo yum pemasangan openssh-server $ sudo yum install openssh-client 

Pada sistem berasaskan gerbang

$ sudo pacman -s openssh 

Setelah memasang pelayan SSH, beberapa pengagihan akan membolehkan perkhidmatan SSHD secara lalai dan yang lain tidak akan. Pada versi terkini pengagihan di atas masukkan yang berikut untuk memastikan bahawa daemon SSH diaktifkan dan dapat dihubungkan oleh pelanggan.

$ sudo systemctl start sshd $ sudo systemctl enable sshd 

Ini akan memulakan perkhidmatan sekarang dan pada setiap boot berikutnya.

Log masuk ke cangkang terpencil

Pembalakan ke dalam shell jauh adalah penggunaan OpenSSH yang paling asas dan biasa. Perintah berikut akan membolehkan anda log masuk dari satu mesin rangkaian ke yang lain, dengan mengandaikan kedua -duanya telah dibuka SSH. Nota: Gantikan "nama pengguna" dengan nama pengguna pengguna yang anda mahu log masuk. Sekiranya anda menyambung ke komputer lain pada rangkaian yang sama seperti yang anda ganti "Host" dengan alamat IP atau nama hos mesin itu. Sekiranya anda masuk ke mesin di internet maka ganti "hos" dengan alamat IP atau nama domain mesin itu.

$ ssh username@host 

Secara lalai, SSHD memerlukan kata laluan pengguna untuk mengesahkan, jadi masukkan kata laluan pengguna dan sekarang anda log masuk ke mesin itu sebagai pengguna itu. Sekiranya pengguna adalah pengguna root atau mempunyai keistimewaan sudo maka kini anda boleh mentadbir mesin dari jauh sepenuhnya. Perhatikan bahawa jika anda menyambung ke pelayan yang menggunakan port selain daripada lalai 22 (contohnya 10001) maka anda perlu menentukan nombor port dengan memasukkan "-p 10001" ("-p"Mesti huruf kecil, lebih lanjut mengenai ini kemudian) antara SSH dan selebihnya arahan.

Menyalin fail antara mesin

Perintah SCP boleh digunakan untuk menyalin fail ke atau dari satu mesin dan yang lain. Untuk berbuat demikian, anda mesti terlebih dahulu memberikan laluan fail yang anda mahu salin dan kemudian jalan di mana anda mahu fail disalin.

Contohnya, untuk menyalin fail senarai yang hendak dibuat.txt dari pelanggan ~/Dokumen folder ke mesin jauh ~/Muat turun Folder Masukkan perkara berikut.

$ scp ~/dokumen/todolist.txt username@host: ~/muat turun/ 

Begitu juga, anda boleh menyalin fail dari pelayan ke pelanggan. Cukup berikan laluan fail pada pelayan, diikuti dengan laluan yang dikehendaki pada mesin klien. Contohnya, kita boleh menyalin perkara yang sama senarai yang hendak dibuat.txt bahawa kami baru dimuat naik, ke dalam /TMP Direktori mesin tempatan dengan mengeluarkan arahan berikut.

$ scp nama pengguna@host: ~/muat turun/todolist.txt /tmp / 

Perhatikan bahawa jika anda menyalin ke/dari pelayan yang menggunakan port selain daripada lalai 22 (contohnya 10001) maka anda perlu menentukan nombor port dengan memasukkan " -P 10001 "antara SCP dan selebihnya arahan. Juga, ambil perhatian bahawa ini adalah modal P Berbeza dengan huruf kecil p digunakan oleh perintah ssh. Proses untuk menyalin direktori adalah sama, kecuali bahawa anda mesti menentukan "-r"Bendera untuk menyalin direktori bersama dengan semua subdirektori dan failnya di dalamnya. Perintah berikut akan menyalin keseluruhan direktori dokumen dari pengguna setempat ke folder muat turun pengguna jauh.

$ scp -r ~/dokumen nama pengguna@host: ~/muat turun/ 

Sebagai alternatif kepada arahan SCP, anda boleh menggunakan arahan SFTP untuk memindahkan fail antara mesin. Ia berkelakuan seperti arahan FTP klasik tetapi tidak seperti FTP, ia disulitkan sepenuhnya.

Mengkonfigurasi pengesahan berasaskan kunci

Sekiranya anda menggunakan OpenSSH di rangkaian rumah selamat anda, anda mungkin baik dengan pengesahan kata laluan. Walau bagaimanapun, jika anda menggunakannya melalui internet, membolehkan pengesahan berasaskan kunci dan melumpuhkan pengesahan kata laluan pada pelayan menghadap internet anda disyorkan untuk keselamatan tambahan. Ini juga berguna jika anda hanya ingin mengelakkan perlu menaip kata laluan untuk log masuk atau jika anda menggunakan mesin pelayan di wifi awam.

Pengesahan berasaskan kunci menggunakan pasangan kunci kriptografi yang terdiri daripada kunci peribadi yang disimpan hanya pada mesin klien tempatan dan kunci awam yang disimpan di pelayan jauh.

Pertama, menjana pasangan kunci peribadi/awam di mesin pelanggan tempatan.

$ ssh -keygen -t rsa 

Kemudian muat naik hanya kunci awam ke mesin terpencil

$ ssh-copy-id -i ~/.SSH/ID_RSA.Nama pengguna pub@host 

Sekarang log masuk ke pelayan jauh dan jika anda tidak diminta untuk kata laluan pengguna, log masuk berasaskan kunci berfungsi dan anda boleh melumpuhkan log masuk berasaskan kata laluan.
Menggunakan editor teks kegemaran anda terbuka /etc/ssh/sshd_config sebagai akar atau dengan sudo

$ sudo vim/etc/ssh/sshd_config 


dan membuat perubahan berikut dengan menukar Ya ke tidak untuk bidang ini dan tidak menentu mereka seperti yang diperlukan (padam # jika garis bermula dengannya).

ChallengeSesponseAuthentication No PasswordAuthentication No UsePam No 

Seterusnya, Muat semula Perkhidmatan SSHD.

$ sudo Systemctl Reload SSH 

Simpan konfigurasi mesin yang sering diakses untuk sambungan yang lebih mudah

Ia mungkin berguna untuk menyimpan konfigurasi mesin yang sering diakses supaya anda dapat menyambung kepada mereka dengan lebih mudah; Terutama jika mereka mempunyai SSHD mendengar pada port bukan lalai (bukan 22). Untuk berbuat demikian, anda menambah entri pada anda ~/.ssh/config fail.
Entri untuk mesin yang anda akan sambungkan menggunakan arahan berikut

$ ssh -p 1666 bob@remotemachine 

Nampaknya ini.

Hos Remotemachine Pengguna Bob Hostname Remotemachine Port 1666 

Kemudian anda boleh mengakses mesin itu menggunakan arahan berikut ke hadapan.

$ ssh remotemachine 

Memasang sistem fail rangkaian dengan SSHFS

Walaupun ia bukan sebahagian daripada suite openssh, SSHFS boleh dipasang menggunakan pengurus pakej dan kemudian digunakan untuk memasang sistem fail jauh melalui rangkaian. Mari kita anggap bahawa anda ingin mengakses direktori rumah user1@machine1 di sistem fail tempatan anda.

Buat direktori di mana anda ingin memasang sistem fail jauh.

$ mkdir sshmount 

Pasang sistem fail yang menyatakan laluan terpencil dan laluan tempatan di mana anda ingin memasangnya.

$ sshfs user1@machine1:/home/user1 sshmount 

Untuk menyahtingkuhkan isu sistem fail sama ada dari arahan berikut

$ fusermount -u sshmount 

atau

$ sudo umount sshmount 


Port Forwarding/Tunneling

Pemajuan pelabuhan, juga dikenali sebagai terowong, boleh digunakan untuk menyediakan penyulitan untuk aplikasi dan protokol yang trafik rangkaiannya akan dihantar dengan jelas. Contoh dua seterusnya menunjukkan dua kegunaan lain dari port forwarding.

Mengakses cangkang terpencil di mesin yang berada di belakang nat atau firewall

Bagaimana jika anda mahu SSH melalui internet ke dalam mesin yang berada di belakang Nat atau firewall? Dalam senario ini terdapat 3 mesin.

  1. Mesin di belakang nat yang anda mahu log masuk ke jauh
  2. Pelayan yang menghadap ke internet anda mempunyai akses SSH
  3. Mesin di rangkaian lain yang ingin anda gunakan untuk log masuk ke mesin 1 melalui internet

Untuk perintah ssh -L Tukar sambungan ke port tempatan yang ditentukan ke port hos yang ditentukan. Begitu juga, -R Tukar sambungan ke port jauh yang ditentukan ke port tempatan yang ditentukan.

Pada mesin 1 masukkan arahan berikut.

user1@1 $ ssh -r 10125: localhost: 22 user2@2 

Pada mesin 3 masukkan arahan berikut. Nota: Perintah kedua harus dibuka dalam tetingkap terminal baru atau TTY.

user3@3 $ ssh -l 10001: localhost: 10125 user2@2 user3@3 $ ssh user1@localhost -p 10001 

Perintah pertama akan kelihatan seperti log masuk ke mesin 2 secara normal, tetapi ia juga akan mengikat port 22 (perkhidmatan SSHD) dari mesin 1 ke port 10125 pada mesin 2 supaya sambungan ke port 10125 pada mesin 2 dikemukakan ke port 22 pada mesin 1. Perintah kedua juga akan kelihatan seperti ia masuk ke mesin 2 secara normal, tetapi ia mengikat port 10001 dari mesin 3 hingga port 10125 pada mesin 2 supaya sambungan ke port 10001 pada mesin 3 dikemukakan ke port 10125 pada mesin 2, yang kemudiannya diteruskan ke port 22 pada mesin 1. Kemudian, akhirnya mesin 3 dapat log masuk ke mesin 1, dengan menyambung ke port 10001 dengan sendirinya yang dikemukakan melalui terowong yang kami buat.

Menggunakan OpenSSH sebagai proksi web

Menggunakan -D Bendera anda dapat menggunakan pelayan SSH jauh anda sebagai proksi kaus kaki. Ini boleh menjadi sangat berguna untuk melayari web, contohnya jika anda berada di wifi awam dan mahukan privasi tambahan, atau jika anda berada di tempat kerja/sekolah/rangkaian lain yang boleh mengamuk lalu lintas atau kandungan penapis.

Hanya mengeluarkan arahan berikut dan anda akan dapat menggunakan port 8888 Mesin tempatan anda sebagai proksi kaus kaki, supaya sambungan ke port 8888 akan dikemukakan dengan selamat ke pelayan jauh dan disulitkan sepenuhnya dari mata prying pada rangkaian tempatan.

SSH -D 8888 Nama Pengguna@Host 
Mengkonfigurasi Proksi Stoking di Firefox

Tutorial Linux Berkaitan:

  • Cara Mencegah Pemeriksaan Sambungan RangkaianManager
  • Linux: Persediaan SSH
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Cara Menyiapkan Pelayan OpenVPN di Ubuntu 20.04
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Cara Menjana dan Mengurus Kekunci SSH di Linux
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Ubuntu 20.04 SSH Server
  • Menguasai Gelung Skrip Bash