Cara Mengonfigurasi Koneksi SSH Khusus untuk Menyederhanakan Akses Jarak Jauh


SSH (Klien SSH) adalah program untuk mengakses mesin dari jarak jauh, yang memungkinkan pengguna menjalankan perintah pada host jarak jauh. Ini adalah salah satu metode yang paling direkomendasikan untuk masuk ke host jarak jauh, karena metode ini dirancang untuk menyediakan komunikasi terenkripsi yang aman antara dua host yang tidak tepercaya melalui jaringan yang tidak aman.

SSH menggunakan file konfigurasi (khusus) seluruh sistem dan khusus pengguna. Dalam tutorial ini, kami akan menjelaskan cara membuat file konfigurasi ssh khusus dan menggunakan opsi tertentu untuk terhubung ke host jarak jauh.

Persyaratan:

  1. Anda harus menginstal klien OpenSSH di desktop Linux Anda.
  2. Pahami opsi umum yang digunakan untuk koneksi jarak jauh melalui ssh.

File Konfigurasi Klien SSH

Di bawah ini adalah lokasi file konfigurasi klien ssh:

  1. /etc/ssh/ssh_config – ini adalah file konfigurasi default seluruh sistem. Ini berisi pengaturan yang berlaku untuk semua pengguna mesin klien ssh.
  2. ~/.ssh/config atau $HOME/.ssh/config – adalah file konfigurasi khusus/khusus pengguna. Ini memiliki konfigurasi yang berlaku untuk pengguna tertentu. Oleh karena itu, ini mengesampingkan pengaturan default di file konfigurasi seluruh sistem. Ini adalah file yang akan kita buat dan gunakan.

Secara default, pengguna diautentikasi di ssh menggunakan kata sandi, namun Anda dapat mengatur login ssh tanpa kata sandi menggunakan ssh keygen dalam 5 langkah sederhana.

Catatan: Jika direktori ~/.ssh tidak ada di sistem desktop Anda, buatlah dengan izin berikut.


mkdir -p ~/.ssh
chmod 0700 ~/.ssh   

Perintah chmod di atas menyiratkan bahwa hanya pengguna yang dapat memiliki izin membaca, menulis, dan mengeksekusi pada direktori seperti yang diperlukan oleh pengaturan ssh.

Cara Membuat File Konfigurasi SSH Khusus Pengguna

File ini biasanya tidak dibuat secara default, jadi Anda perlu membuatnya dengan izin baca/tulis hanya untuk pengguna.


touch ~/.ssh/config
chmod 0700 ~/.ssh/config

File di atas berisi bagian yang ditentukan oleh spesifikasi host, dan bagian tersebut hanya diterapkan pada host yang cocok dengan salah satu pola yang ditetapkan dalam spesifikasi.

Format konvensional ~/.ssh/config adalah sebagai berikut, dan semua baris kosong serta baris yang dimulai dengan '#' dianggap sebagai komentar:


Host    host1
	ssh_option1=value1
	ssh_option2=value1 value2
	ssh_option3=value1 

Host    host2
	ssh_option1=value1
	ssh_option2=value1 value2

Host  *
	ssh_option1=value1
	ssh_option2=value1 value2

Dari format di atas:

  1. Host host1 – adalah definisi header untuk host1, di sinilah spesifikasi host dimulai dan diakhiri dengan definisi header berikutnya, pembuatan Host host2 sebuah bagian.
  2. host1, host2 hanyalah alias host yang digunakan pada baris perintah, dan bukan nama host sebenarnya dari host jarak jauh.
  3. Opsi konfigurasi seperti ssh_option1=value1, ssh_option2=value1 value2 berlaku untuk host yang cocok dan harus diindentasi untuk pemformatan yang terorganisir dengan baik.
  4. Untuk opsi seperti ssh_option2=value1 value2, nilai value1 dianggap terlebih dahulu, kemudian value2.
  5. Definisi header Host * (di mana * adalah sebuah pola – karakter pengganti yang cocok dengan nol karakter atau lebih) akan cocok dengan nol atau lebih host.

Masih mempertimbangkan format di atas, beginilah cara ssh membaca file konfigurasi. Jika Anda menjalankan perintah ssh untuk mengakses host1 dari jarak jauh seperti:


ssh host1

Perintah ssh di atas akan melakukan hal-hal berikut:

  1. cocokkan alias host host1 di file konfigurasi dan terapkan opsi yang ditetapkan di bawah header definisi, Host host1.
  2. lalu berpindah ke bagian host berikutnya, Host host2 dan menemukan bahwa nama yang diberikan pada baris perintah tidak cocok, jadi tidak ada opsi yang digunakan dari sini.
  3. Ini melanjutkan ke bagian terakhir, Host *, yang cocok dengan semua host. Di sini, ini menerapkan semua opsi di bagian ini ke koneksi host. Tapi itu tidak bisa mengesampingkan nilai opsi apa pun yang sudah digunakan di bagian sebelumnya.
  4. Hal yang sama berlaku untuk host2.

Cara Menggunakan File Konfigurasi SSH Khusus Pengguna

Setelah Anda memahami cara kerja file konfigurasi klien ssh, Anda dapat membuatnya sebagai berikut. Ingatlah untuk menggunakan opsi dan nilai (alias host, nomor port, nama pengguna, dan sebagainya) yang berlaku untuk lingkungan server Anda.

Buka file konfigurasi dengan editor favorit Anda:


vi ~/.ssh/config

Dan tentukan bagian yang diperlukan:


Host fedora25
        HostName 192.168.56.15
        Port 22
        ForwardX11 no

Host centos7
        HostName 192.168.56.10
        Port 22
        ForwardX11 no

Host ubuntu
        HostName 192.168.56.5
        Port 2222
        ForwardX11 yes

Host *
        User tecmint
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        ServerAliveInterval 60
        ServerAliveCountMax 20
        LogLevel INFO

Penjelasan detail mengenai opsi konfigurasi ssh di atas.

  1. HostName – menentukan nama host asli untuk login, alternatifnya, Anda dapat menggunakan alamat IP numerik, hal ini juga diperbolehkan (baik pada baris perintah maupun dalam spesifikasi HostName) .
  2. Pengguna – menentukan pengguna yang akan login.
  3. Port – menetapkan nomor port untuk terhubung pada host jarak jauh, defaultnya adalah 22. Gunakan nomor port yang dikonfigurasi dalam file konfigurasi sshd host jarak jauh.
  4. Protokol – opsi ini menentukan versi protokol yang harus didukung ssh sesuai urutan preferensi. Nilai yang biasa digunakan adalah '1' dan '2', beberapa versi harus dipisahkan dengan koma.
  5. IdentityFile – menentukan file tempat identitas autentikasi DSA, Ed25519, RSA, atau ECDSA pengguna dibaca.
  6. ForwardX11 – menentukan apakah koneksi X11 akan dialihkan secara otomatis melalui saluran aman dan set DISPLAY. Ini memiliki dua kemungkinan nilai “ya ” atau “tidak ”.
  7. Kompresi – digunakan untuk mengatur kompresi selama koneksi jarak jauh dengan nilai “yes ”. Standarnya adalah “tidak ”.
  8. ServerAliveInterval – menetapkan interval waktu habis dalam hitungan detik, setelah itu jika tidak ada respons (atau data) yang diterima dari server, ssh akan mengirimkan pesan melalui saluran terenkripsi untuk meminta respons dari server. Nilai defaultnya adalah 0, artinya tidak ada pesan yang akan dikirim ke server, atau 300 jika opsi BatchMode telah ditentukan.
  9. ServerAliveCountMax – menetapkan jumlah pesan aktif server yang dapat dikirim tanpa ssh menerima respons apa pun dari server.
  10. LogLevel – mendefinisikan tingkat verbositas yang digunakan saat mencatat pesan dari ssh. Nilai yang diperbolehkan meliputi: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, dan DEBUG3. Dan defaultnya adalah INFO.

Cara standar untuk terhubung ke host Linux jarak jauh (CentOS 7 – dalam kasus saya), ditentukan di bagian dua file konfigurasi di atas, biasanya kita mengetikkan perintah di bawah ini:


ssh -i ~/.ssh/id_rsa -p 22 [email 

Namun, dengan menggunakan file konfigurasi klien ssh, kita cukup mengetikkan perintah berikut:


ssh centos7 

Anda dapat menemukan lebih banyak opsi dan contoh penggunaan di halaman manual konfigurasi klien ssh:


$man ssh_config

Itu saja untuk saat ini, dalam panduan ini, kami menjelaskan kepada Anda cara menggunakan file konfigurasi klien ssh khusus pengguna (khusus) di Linux. Gunakan formulir umpan balik di bawah ini untuk membalas surat kepada kami mengenai artikel ini.