Tutorial ini akan menunjukkan gimana caranya mengkonfigurasi SSH agar bisa login menggunakan certificate tanpa password, pada komputer client Mac dan server Debian. Harusnya juga bisa untuk OS lainnya tapi saya belum pernah coba. Alasan orang menggunakan certificate untuk SSH mereka rata-rata adalah demi keamanan, karena orang yang ngga punya private key ngga akan bisa login ke server sekalipun di-brute force attack. Tapi alasan saya pribadi adalah karena males mengetikkan password di terminal, ehehe..
Pertama, buka dulu program Terminal yang ada di Mac (⌘ + spasi dan ketik “terminal”) lalu ketikkan perintah ini untuk menggenerate key pair (private & public key):
ssh-keygen -t rsa -b 2048
Kita akan diberikan beberapa pertanyaan:
Enter file in which to save the key (/home/username/.ssh/id_rsa): (Tekan Enter)
Enter passphrase (empty for no passphrase): (Tekan Enter)
Enter same passphrase again: (Tekan Enter)
Sampai sini di komputer Mac kita udah ada pasangan key, yaitu private key (id_rsa) dan public key (id_rsa.pub) yang lokasinya ada di /Users/YOURUSERNAMEHERE/.ssh/. Private key (id_rsa) bisa diibaratkan anak kunci yang selalu kita bawa kemana-mana untuk membuka gembok server (public key / id_rsa.pub). Private key ada di sisi client, sedangkan public key kita letakkan di server. Masih di Terminal, ketikkan perintah ini:
cat /Users/YOURUSERNAMEHERE/.ssh/id_rsa.pub
Perintah cat fungsinya untuk melihat isi file id_rsa.pub. Kemudian copy isi file id_rsa.pub tadi (ctrl + c) dan nantinya akan kita paste di server. Berikutnya login ke server menggunakan SSH, lalu edit / paste isi file id_rsa.pub tadi kedalam file ini:
vi /home/YOURUSERNAMEHERE/.ssh/authorized_keys
Langkah terakhir, edit file /etc/ssh/sshd_config dan tambahkan / ubah sehingga jadi begini:
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
UsePAM no
Seperti contoh di atas, PasswordAuthentication
dan UsePAM
saya set menjadi no
gunanya untuk mendisable login menggunakan username & password, sehingga certificate adalah satu-satunya cara untuk masuk ke server. Untuk login ke server caranya begini:
ssh [email protected]
Karena file id_rsa (private key) tadi lokasinya masih default, yaitu di /Users/YOURUSERNAMEHERE/.ssh/ jadi kita ngga perlu mendefinisikan lagi lokasinya, SSH akan mencari otomatis di lokasi tersebut.