Configuring and Securing SSH
Published: 2024-03-24 13:56:04

**Mengakses Remote Command Line dengan SSH**

**Apa Itu Open SSH**
OpenSSH mengimplementasikan protokol Secure Shell atau SSH dalam sistem Red Hat Enterprise Linux. Protokol SSH memungkinkan sistem untuk berkomunikasi dengan cara yang terenkripsi dan aman melalui jaringan yang tidak aman
perintah ssh dapat digunakan untuk membuat koneksi aman ke sistem jarak jauh, mengautentikasi sebagai pengguna tertentu, dan mendapatkan sesi shell interaktif pada sistem jarak jauh sebagai pengguna tersebut. Perintah ssh juga dapat digunakan untuk menjalankan perintah individual pada sistem jarak jauh tanpa menjalankan shell interaktif.

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

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p7pr01ib680jp0iwgclp.png)


Anda dapat menggunakan perintah _exit_ untuk keluar dari sistem jarak jauh.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/adcplk4x5urv5wij14rq.png)


Perintah ssh ini akan menjalankan perintah hostname pada sistem jarak jauh sebagai pengguna tanpa mengakses shell interaktif jarak jauh. remotehostuser02

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hbh7c8p4qtws2iy5vr4b.png)


Perintah ssh ini akan menjalankan perintah hostname pada sistem jarak jauh sebagai pengguna tanpa mengakses shell interaktif jarak jauh. remotehostuser02

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jdleu7ulprhyiemygpjn.png)
Perhatikan bahwa perintah sebelumnya menampilkan output di terminal sistem lokal.

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


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ijrqzgarh63fl7k7tdb0.png)
Output sebelumnya menunjukkan bahwa pengguna telah masuk ke sistem pada pseudo-terminal hari ini dari host dengan alamat IP, dan telah menganggur pada prompt shell selama tujuh menit tiga puluh detik. Output sebelumnya juga menunjukkan bahwa pengguna telah masuk ke sistem pada pseudo-terminal dan telah menganggur sejak tiga detik terakhir setelah menjalankan perintah w. user02016:13172.25.250.10user011

**SSH host keys**
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 mengatur enkripsi aman untuk saluran komunikasi dan untuk mengotentikasi server ke klien.

Ketika pengguna menggunakan perintah ssh untuk terhubung ke server SSH, perintah memeriksa untuk melihat apakah ia memiliki salinan kunci publik untuk server tersebut di file host lokal yang dikenal. Administrator sistem mungkin telah mengonfigurasinya sebelumnya di , atau pengguna mungkin memiliki file di direktori home mereka yang berisi kunci. /etc/ssh/ssh_known_hosts~/.ssh/known_hosts

Jika klien memiliki salinan kunci, ssh akan membandingkan kunci dari berkas host yang dikenal untuk server tersebut dengan kunci yang diterimanya. Jika kunci tidak cocok, klien mengasumsikan bahwa lalu lintas jaringan ke server mungkin telah dibajak atau server telah disusupi, dan meminta konfirmasi pengguna apakah akan melanjutkan sambungan atau tidak.

**_NOTE_**
Tetapkan parameter ke dalam berkas khusus pengguna atau di seluruh sistem agar perintah ssh selalu membatalkan sambungan SSH jika kunci publik tidak cocok. StrictHostKeyCheckingyes~/.ssh/config/etc/ssh/ssh_config

Jika klien tidak memiliki salinan kunci publik pada berkas hos yang dikenal, perintah ssh akan menanyakan apakah Anda tetap ingin masuk. Jika Anda mengiyakan, salinan kunci publik akan disimpan dalam berkas Anda sehingga identitas server dapat dikonfirmasi secara otomatis di masa mendatang. ~/.ssh/known_hosts

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h9fl1aozr9qpj5496s8a.png)


**SSH Known Hosts Key Management**

Jika kunci publik server diubah karena kunci hilang akibat kegagalan hard drive, atau diganti karena alasan yang sah, Anda perlu mengedit berkas host yang dikenal untuk memastikan entri kunci publik lama diganti dengan entri dengan kunci publik yang baru agar dapat masuk tanpa kesalahan.

Kunci publik disimpan di dalam berkas dan setiap pengguna pada klien SSH. Setiap kunci berada pada satu baris. Kolom pertama adalah daftar nama host dan alamat IP yang berbagi kunci publik tersebut. Kolom kedua adalah algoritma enkripsi untuk kunci tersebut. Kolom terakhir adalah kunci itu sendiri. /etc/ssh/ssh_known_hosts~/.ssh/known_hosts


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ze7km8jobxg5kpwvz605.png)
Setiap server SSH jarak jauh yang Anda sambungkan menyimpan kunci publiknya di direktori dalam file dengan ekstensi . /etc/ssh.pub

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wmnramb7b1pep4y6gxfm.png)

**_NOTE_**
Merupakan praktik yang baik untuk menambahkan entri yang cocok dengan berkas server ke berkas Anda atau berkas di seluruh sistem. ssh_host_*key.pub~/.ssh/known_hosts/etc/ssh/ssh_known_hosts