Untuk melakukan login ke remote server menggunakan SSH biasanya kita menggunakan Password. Agar lebih aman, Password dapat diganti dengan Public Key. Public Key yang sudah dibuat di komputer dicopy ke folder ~/.ssh/authorized_keys
pada server. Jika key yang ada di komputer tidak sama persis dengan key yang ada di server meskipun itu penambahan spasi, akan terjadi gagal login.
Konfigurasi
Sisi client
Generate key
ssh-keygen -t rsa
Pada pertanyaan pemilihan nama dan direktori Enter file in which to save the key (/home/user/.ssh/id_rsa):
masukkan nama beserta path direktori dimana kita akan menyimpan file key
Enter file in which to save the key (/home/user/.ssh/id_rsa):/home/user/.ssh/namakey
Pada pertanyaan membuat passpharse isikan password jika ingin keamanan lebih, atau kosongkan saja dengan cara menekan enter
*Catatan: Password passpharse digunakan saat kita akan meremote, dengan kata lain sebelum menggunakan key kita harus memasukkan password telebih dahulu
Setelah meng-generate key akan menghasilkan 2 file (private key dan public key) pada direktori yang telah kita sesuaikan dengan nama yang telah kita sesuaikan diatas. Untuk file public key diakhiri dengan nama .pub
Sisi server
Buat folder dan file authorized_keys
.
mkdir /home/user/.ssh/
nano /home/user/.ssh/authorized_keys
Salin isi dari public key yang telah di generate dari sisi client, lalu simpan.
Restart service SSH
sudo systemctl restart ssh
Pengujian
Sekarang login ke server seperti biasa, apakah masih meminta password atau langsung login.
ssh user@IPSERVER
Jika langsung bisa masuk tanpa memasukkan password berarti konfigurasi sudah berhasil
Atau bisa menyebut secara spesifik file key
yang akan digunakan jika kita mempunyai lebih dari 1 key (bisa memakai private key atau public key)
ssh -i ~/.ssh/namakey user@IPSERVER
Mematikan password pada saat akan login
Ini berfungsi agar server yang hendak di remote hanya bisa diakses oleh perangkat yang mempunyai key
Edit file /etc/ssh/sshd_config
Pada parameter #PasswordAuthentication yes
hilangkan tanda #
dan ubah menjadi no
, sehinnga menjadi seperti berikut
PasswordAuthentication no
Keterangan artikel
Tested on: Debian 10, Ubuntu 20.04 Sumber & refrensi: https://musaamin.web.id/cara-login-ssh-dengan-key-di-linux/