Cara Menyiapkan SSH Key di Ubuntu

Bagus Aji Santoso 19 Desember 2017

Cara Menyiapkan SSH Key di Ubuntu

Tentang SSH Key

SSH key memberiakn sebuah alternatif cara yang lebih aman untuk masuk ke virtual private server tanpa menggunakan password. Saat password dapat di cracked dengan brute force, SSH key hampir tidak mungkin di crack menggunakan teknik brute force. Membuat sepasang key akan memberikan kita 2 karakter string yang panjang, public dan private key. Kita bisa menyimpan public key di server manapun lalu mengaksesnya dengan menggunakan private key yang hanya ada di client. Jika kedua key tersebut cocok, maka kita dapat mengakses sistem tanpa password. Kita juga dapat meningkatkan keamanan SSH lebih tinggi lagi dengan menambahkan sebuah passphrase.

Langkah Pertama—Membuat RSA Key Pair

Langkah pertama adalah membuat key pair di komputer client (bisa jadi komputer kita sendiri):

ssh-keygen -t rsa

Langkah Kedua—Simpan Key dan Passphrase

Setelah menekan ENTER, selanjutnya kita akan diberikan beberapa pertanyaan tambahan:

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

Pertanyaan di atas untuk menentukan direktori tempat menyimpan key yang akan kita buat. Pada umumnya di langkah ini, kita akan langsung menekan tombol ENTER (menggunakan direktori bawaannya).

Enter passphrase (empty for no passphrase):

Pertanyaan selanjutnya adalah passphrase, password yang akan selalu diminta setiap kali melakukan akses SSH nanti. Kelebihan menggunakan passphrase ialah koneksi kita akan lebih aman. Setiap kali mengakses server menggunakan ssh kita akan selalu ditanya passphrase. Itu artinya orang yang tidak berwenang harus bekerja dua kali (mendapatkan private key dan menebak passphrase). Kekurangannya, kita harus menulis password tiap kali akan mengakses ssh. Jika tidak berminat menggunakan passphrase, langkah ini bisa dilewat dengan menekan tombol ENTER tanpa mengetikkan apapun.

Proses pembuatan key terlihat sebagai berikut:

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
|          .oo.   |
|         .  o.E  |
|        + .  o   |
|     . = = .     |
|      = S = .    |
|     o + = +     |
|      . o + o .  |
|           . o   |
|                 |
+-----------------+

Public key terletak di /home/demo/.ssh/id_rsa.pub sedangkan private key terletak di /home/demo/.ssh/id_rsa (demo bisa diganti dengan username pembaca).

Langkah Ketiga—Menyalin Public Key

Setelah key pair dibuat, kini waktunya kita untuk menyimpan public key ke server manapun yang ingin diakses.

Kita dapat menyalin isi public key menggunakan perintah ssh-copy-id. Pastikan untuk mengganti username dan IP address (dengan hostname atau IP address server):

ssh-copy-id user@123.45.56.78

Kita akan melihat pesan:

The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.
user@12.34.56.78's password: 
Now try logging into the machine, with "ssh 'user@12.34.56.78'", and check in:

  ~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Sekarang kita sudah bisa masuk ke user@12.34.56.78 tanpa diminta password. Tetapi, jika di awal memberikan sebuah passphrase saat membuat key pair, kita akan selalu diminta untuk memasukkannya.

Langkah Keempat—Disable Password Untuk Root

Langkah ini adalah langkah tambahan, boleh di lewat.

Setelah menyalin SSH key ke server dan memastikan kita dapat login menggunakan SSH tanpa password, kita bisa men-disable login root menggunakan password.

Untuk melakukannya, pertama bua dulu file konfigurasi SSH:

sudo nano /etc/ssh/sshd_config

Di dalam fiel tersebut, cari baris yang dimulai dengan PermitRootLogin kemudian modifikasi nilai disebelahnya menjadi:

PermitRootLogin without-password

Jalankan perubahan tadi:

reload ssh

Diterjemahkan dari How To Set Up SSH Keys di bawah Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.