Mengonfigurasi dan Mengamankan SSH
Published: 2024-04-02 03:01:36

Mengakses Baris Perintah Jarak Jauh dengan SSH

Apa itu OpenSSH?
BukaSSHmengimplementasikan protokol Secure Shell atau SSH di sistem Red Hat Enterprise Linux. Protokol SSH memungkinkan sistem untuk berkomunikasi secara terenkripsi dan aman melalui jaringan yang tidak aman.

Anda dapat menggunakan perintah ssh untuk membuat koneksi aman ke sistem jarak jauh, mengautentikasi sebagai pengguna tertentu, dan mendapatkan sesi shell interaktif pada sistem jarak jauh sebagai pengguna tersebut. Anda juga dapat menggunakan perintah ssh untuk menjalankan perintah individual pada sistem jarak jauh tanpa menjalankan shell interaktif.

Contoh Shell Aman
Perintah ssh berikut akan memasukkan Anda ke server jarak jauh remotehostmenggunakan nama pengguna yang sama dengan pengguna lokal saat ini. Dalam contoh ini, sistem jarak jauh meminta Anda untuk mengautentikasi dengan kata sandi pengguna tersebut.

[user01@host ~]$ ssh remotehost
user01@remotehost's password: redhat
...keluaran dihilangkan...
[user01@remotehost ~]$ 
Anda dapat perintah keluar untuk keluar dari sistem jarak jauh.

[user01@remotehost ~]$ exit
keluar
Koneksi ke remotehost ditutup.
[user01@host ~]$ 
Perintah ssh berikutnya akan memasukkan Anda ke server jarak jauh remotehostmenggunakan nama pengguna user02. Sekali lagi, Anda diminta oleh sistem jarak jauh untuk mengautentikasi dengan kata sandi pengguna tersebut.

[user01@host ~]$ ssh user02@remotehost
user02@remotehost's password: shadowman
...keluaran dihilangkan...
[user02@remotehost ~]$ 
Perintah ssh ini akan menjalankan perintah nama host pada remotehostsistem jarak jauh sebagai user02pengguna tanpa mengakses shell interaktif jarak jauh.

[user01@host ~]$ ssh user02@remotehost hostname
user02@remotehost's password: shadowman
remotehost.lab.example.com
[user01@host ~]$ 
Perhatikan bahwa perintah sebelumnya menampilkan output di terminal sistem lokal.

Mengidentifikasi Pengguna Jarak Jauh
Perintah w menampilkan daftar pengguna yang sedang login ke komputer. Hal ini sangat berguna untuk menunjukkan pengguna mana yang login menggunakan ssh dari lokasi terpencil mana, dan apa yang mereka lakukan.

[user01@host ~]$ ssh user01@remotehost
user01@remotehost's password: redhat
[user01@remotehost ~]$ w
 16:13:38 naik 36 menit, 1 pengguna, rata-rata memuat: 0,00, 0,00, 0,00
USER TTY DARI LOGIN@ IDLE JCPU PCPU APA
pengguna02 poin/0 172.25.250.10 16:13 7:30 0,01s 0,01s -bash
pengguna01 poin/1 172.25.250.10 16:24 3,00 detik 0,01 detik 0,00 detik
[user02@remotehost ~]$ 
Output sebelumnya menunjukkan bahwa user02pengguna telah masuk ke sistem pada terminal semu 0hari 16:13ini dari host dengan 172.25.250.10alamat IP, dan telah menganggur di prompt shell selama tujuh menit tiga puluh detik. Output sebelumnya juga menunjukkan bahwa user01pengguna telah login ke sistem pada terminal semu 1dan telah menganggur sejak tiga detik terakhir setelah menjalankan perintah w .

Kunci host SSH
SSH mengamankan komunikasi melalui enkripsi kunci publik. Ketika klien SSH terhubung ke server SSH, server mengirimkan salinan kunci publiknya ke klien sebelum klien masuk. Ini digunakan untuk menyiapkan enkripsi aman untuk saluran komunikasi dan untuk mengautentikasi server ke klien.

Saat pengguna menggunakan perintah ssh untuk terhubung ke server SSH, perintah tersebut akan memeriksa apakah pengguna memiliki salinan kunci publik untuk server tersebut di file host lokal yang diketahui. Administrator sistem mungkin telah melakukan pra-konfigurasi di /etc/ssh/ssh_known_hosts, atau pengguna mungkin memiliki ~/.ssh/known_hostsfile di direktori home mereka yang berisi kunci tersebut.

Jika klien mempunyai salinan kunci, ssh akan membandingkan kunci dari file host yang dikenal untuk server tersebut dengan yang diterima. Jika kunci tidak cocok, klien berasumsi bahwa lalu lintas jaringan ke server dapat dibajak atau server telah disusupi, dan meminta konfirmasi pengguna apakah akan melanjutkan koneksi atau tidak.

Catatan
Atur StrictHostKeyCheckingparameter ke yesdalam file khusus pengguna ~/.ssh/configatau seluruh sistem /etc/ssh/ssh_configuntuk menyebabkan perintah ssh selalu membatalkan koneksi SSH jika kunci publik tidak cocok.

Jika klien tidak memiliki salinan kunci publik di file host yang diketahui, perintah ssh akan menanyakan apakah Anda tetap ingin masuk. Jika Anda melakukannya, salinan kunci publik akan disimpan dalam ~/.ssh/known_hostsfile Anda sehingga identitas server dapat dikonfirmasi secara otomatis di masa mendatang.

[user01@host ~]$ ssh newhost
Keaslian host 'remotehost (172.25.250.12)' tidak dapat ditentukan.
Sidik jari kunci ECDSA adalah SHA256:qaS0PToLrqlCO2XGklA0iY7CaP7aPKimerDoaUkv720.
Are you sure you want to continue connecting (yes/no)? yes
Peringatan: Menambahkan 'newhost,172.25.250.12' (ECDSA) secara permanen ke daftar host yang dikenal.
user01@newhost's password: redhat
...keluaran dihilangkan...
[user01@newhost ~]$ 
Manajemen Kunci Host Dikenal SSH

Jika kunci publik server diubah karena kunci tersebut hilang karena kegagalan hard drive, atau diganti karena alasan yang sah, Anda perlu mengedit file host yang diketahui untuk memastikan entri untuk kunci publik lama diganti dengan entri dengan kunci publik baru untuk masuk tanpa kesalahan.

Kunci publik disimpan di /etc/ssh/ssh_known_hostsdan setiap file pengguna ~/.ssh/known_hostsdi klien SSH. Setiap kunci ada dalam satu baris. Bidang pertama adalah daftar nama host dan alamat IP yang berbagi kunci publik tersebut. Bidang kedua adalah algoritma enkripsi untuk kunci tersebut. Bidang terakhir adalah kunci itu sendiri.

[user01@host ~]$ cat ~/.ssh/known_hosts
remotehost, 172.25.250.11 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOsEi0e+FlaNT6jul8Ag5Nj+RViZl0yE2w6iYUr+1fPtOIF0EaOgFZ1LXM37VFTxdgFxHS 3D5WhnJikab+68zf8+w=
Setiap server SSH jarak jauh yang Anda sambungkan menyimpan kunci publiknya di /etc/sshdirektori dalam file dengan ekstensi .pub.

[user01@remotehost ~]$ ls /etc/ssh/*key.pub
/etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ed25519_key.pub /etc/ssh/ssh_host_rsa_key.pub
Catatan
Merupakan praktik yang baik untuk menambahkan entri yang cocok dengan file server ssh_host_*key.pubke file Anda ~/.ssh/known_hostsatau file seluruh sistem /etc/ssh/ssh_known_hosts.