Secure Shell (SSH) adalah protokol jaringan kriptografi yang digunakan untuk koneksi aman antara klien dan server dan mendukung berbagai mekanisme otentikasi.

Mekanisme yang paling populer adalah otentikasi berbasis kata sandi dan otentikasi berbasis public key. Menggunakan kunci SSH lebih aman dan nyaman daripada otentikasi kata sandi tradisional.

Dalam tutorial ini, kita akan membahas cara membuat kunci SSH pada mesin Ubuntu 18.04. Cara mengatur otentikasi berbasis kunci SSH dan menyambung ke server Linux jarak jauh Anda tanpa memasukkan kata sandi.

Membuat SSH keys di Ubuntu

Sebelum membuat SSH key pair baru, periksa kunci SSH yang ada pada mesin klien Ubuntu. Anda dapat melakukannya dengan menjalankan perintah ls:

ls -l ~/.ssh/id_*.pub

Jika perintah di atas mencetak output seperti No such file or directory atau no matches found, berarti Anda tidak memiliki SSH keys di mesin klien dan Anda dapat melanjutkan dengan langkah berikutnya dan generate SSH key pair.

Jika ada kunci yang ada, Anda bisa menggunakannya dan melewati langkah berikutnya atau membuat cadangan kunci lama dan menghasilkan yang baru.

Hasilkan pasangan kunci SSH 4096 bit baru dengan alamat email Anda sebagai komentar dengan mengetik:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Outputnya akan terlihat seperti ini:

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

Tekan Enter untuk menerima lokasi file default dan nama file.

Selanjutnya, Anda akan diminta untuk mengetikkan passphrase yang aman.

Enter passphrase (empty for no passphrase):

Jika Anda tidak ingin menggunakan frasa sandi cukup tekan Enter

Seluruh interaksi terlihat seperti ini:

generate a new-ssh-key-pair

Untuk memverifikasi SSH key pair telah dibuat, ketik:

ls ~/.ssh/id_*
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

Salin public key ke Server Ubuntu

Sekarang setelah Anda membuat pasangan kunci SSH Anda, langkah selanjutnya adalah menyalin kunci publik ke server yang ingin Anda kelola.

Cara termudah dan yang disarankan untuk menyalin kunci publik Anda ke server adalah dengan menggunakan utilitas yang disebut ssh-copy-id. Pada jenis terminal mesin lokal Anda:

ssh-copy-id remote_username@server_ip_address

Anda akan diminta memasukkan kata sandi remote_username:

remote_username@server_ip_address's password:

Setelah user diautentikasi, kunci publik ~/.ssh/id_rsa.pub akan ditambahkan ke file user remote ~/.ssh/Authorized_key dan koneksi akan ditutup.

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'username@server_ip_address'"
and check to make sure that only the key(s) you wanted were added.

Jika karena alasan tertentu utilitas ssh-copy-id tidak tersedia di komputer lokal, Anda dapat menggunakan perintah berikut untuk menyalin kunci publik:

cat ~/.ssh/id_rsa.pub | ssh remote_user@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Login ke server menggunakan SSH Keys

Setelah menyelesaikan langkah-langkah di atas, Anda seharusnya sudah bisa masuk ke remote server tanpa diminta kata sandi.

Untuk mengujinya coba masuk ke server Anda melalui SSH:

ssh remote_username@server_ip_address

Jika belum menetapkan frasa sandi untuk private key, Anda akan segera masuk. Jika tidak, Anda akan diminta memasukkan kata sandi.

Menonaktifkan Otentikasi Kata Sandi SSH

Untuk menambahkan lapisan keamanan tambahan ke server, Anda dapat menonaktifkan otentikasi kata sandi untuk SSH.

Sebelum menonaktifkan otentikasi kata sandi SSH, pastikan Anda dapat masuk ke server Anda tanpa kata sandi dan pengguna yang Anda masuki telah memiliki hak sudo.

Log into ke remote server:

ssh sudo_user@server_ip_address

Buka file konfigurasi SSH di /etc/ssh/sshd_config dengan text editor :

sudo nano /etc/ssh/sshd_config

Cari directive berikut dan modifikasi seperti berikut:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Setelah selesai simpan file dan mulai ulang layanan SSH dengan mengetik:

sudo systemctl restart ssh

Pada titik ini, otentikasi berbasis kata sandi dinonaktifkan.

Kesimpulan

Dalam tutorial ini, Anda telah belajar cara generate SSH key pair baru dan mengatur otentikasi berbasis SSH key. Anda dapat menambahkan kunci yang sama ke beberapa remote server. Kami juga telah menunjukkan cara menonaktifkan otentikasi kata sandi SSH dan menambahkan lapisan keamanan tambahan ke server.

Secara default, SSH listens pada port 22. Mengubah port SSH default akan mengurangi risiko serangan otomatis.

Jika Anda secara teratur terhubung ke beberapa sistem, Anda dapat menyederhanakan alur kerja Anda dengan mendefinisikan semua koneksi Anda dalam file konfigurasi SSH.