Login ke server menggunakan SSH Key merupakan cara yang lebih aman dibandingkan login dengan mengetikkan kata sandi biasa. Metode login dengan kata sandi biasa dapat dipecahkan dengan metode brute-force, sementara SSH Key hampir tidak mungkin dapat ditembus dengan metode brute-force biasa.
Akan ada 2 buah file yang harus anda ingat baik – baik jangan sampai tertukar yaitu:
- Private Key : ini adalah file yang berfungsi seperti password dan harus disimpan di tempat yang aman dan rahasia, jangan sampai Hilang. File ini hanya digunakan di komputer anda/ komputer yang digunakan untuk login ke Server.
- Public Key : dalam kriptografi, Public Key dapat digunakan untuk men-decrypt pesan, file ini lah nantinya yang kita share ke publik, misalnya ke Server, ke GitHub, atau ke SysAdmin untuk didaftarkan ke server.
Linux yang digunakan pada penulisan artikel ini adalah Ubuntu 18.04, *untuk artikel ini nge-testnya di virtual 😀
Generate Private Key dan Public Key
Windows
Download aplikasi puttygen.exe dan putty.exe di sini
Buka aplikasi puttygen.exe, kemudian klik Generate untuk menggenerate, sambil gerak – gerakkan cursor anda agar progress bar nya jalan.
Setelah proses generate selesai, Perhatikan gambar dibawah:
Bagian kotak merah paling atas adalah Public Key, Copy seluruh text pada area tersebut ke tempat yang aman, nanti Public Key tersebut akan di daftarkan ke Server.
Bagian Key Comment dapat anda gunakan untuk memberi nama atau catatan tentang Public Key ini, pada contoh diatas saya memberi nama PC-Sayang.
Key Passphrase digunakan untuk memasang password pada Private key ini, password akan selalu ditanyakan ketika Private key digunakan. Karena artikel ini berjudul “Login SSH Tanpa Password” maka kosongkan saja Passphrase nya, namun Simpan private key ditempat yang aman.
Klik tombol Save private key untuk menyimpan private key tersebut, File Private Key ini nantinya yang anda gunakan untuk Login pada aplikasi Putty. File yang disimpan ber-extensi .ppk dan hanya dapat digunakan oleh aplikasi Putty, namun anda dapat mengkonversinya ke format OpenSSH untuk digunakan pada Linux dan Mac.
Linux & Mac
Cara meng-generate ssh key di Linux dan Mac hampir sama. Defaultnya private key berada di /home/.ssh/id_rsa. Jika anda pernah menggenerate ssh key sebelumnya, maka sebaiknya backup dahulu key tersebut.
cd ~/.ssh
mkdir backups
mv id_rsa* backups
Kemudian Generate Key dengan perintah dibawah ini:
-C adalah opsi untuk komentar
ssh-keygen -t rsa -C "Linux-Sayang"
Hasil output kurang lebih seperti dibawah ini:
Saya membiarkan semuanya default, (Tekan enter saja)
dari perintah ssh-keygen dihasilkan 2 buah file:
- id_rsa yang berisikan Private Key
- id_rsa.pub yang berisikan Public Key
Konfigurasi Pada SSH Server
Enable Key Authentication
Untuk mengaktifkan Authentikasi dengan key, edit konfigurasi ssh pada file /etc/ssh/sshd_config, pastikan value dibawah ini Yes:
PubkeyAuthentication yes
kemudian restart sshd
service sshd restart
Daftarkan Public Key pada Server
Defaultnya Public Key yang diizinkan login berada pada directory Home masing masing user, tepatnya di: ~/.ssh/authorized_keys.
agar anda tidak bingung, Login lah dengan User yang akan anda gunakan login dengan Key, kemudian paste isi dari Public Key (id_rsa.pub atau text area besar di aplikasi puttygen) yang telah di generate tadi ke file tersebut:
echo PRIVATE_KEY >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
Jika anda menambahkan nya dengan user root, pastikan file authorized_key ownership nya dimiliki user yang bersangkutan dan chmod-nya 600
Setelah mendaftarkan Public Key pada server, cobalah login dengan menggunakan Private key yang telah dibuat tadi.
Konfigurasi pada SSH Client
Windows
Koneksi SSH pada Windows biasa saya lakukan dengan aplikasi putty.
Opsi Private key berada pada category : Connection -> SSH -> Auth, klik Browse kemudian pilih file Private key (.ppk) yang telah di simpan sebelum nya.
Kemudian Kembali ke kategori Session dan isikan username@hostname anda di kolom yang disediakan. Setelah semua lengkap berikan nama setingan tersebut pada kolom Saved Sessions, kemudian klik Save.
Jika nanti anda membuka aplikasi putty lagi anda akan menemukan nama session yang telah disimpan disana
Klik tombol Open untuk memulai ssh
Linux & Mac
Uji coba pada linux & Mac sangat mudah, jika anda mengikuti tutorial diatas dengan lokasi private key yang default, maka cukup ketikkan perintah ssh seperti biasa:
ssh user@hostname
Namun jika anda mengubah lokasi private key gunakan parameter -i (Identity) agar private key digunakan:
ssh user@hostname -i /lokasi/private/id_rsa
Disable Password Authentication
Jika anda sudah berhasil login dengan Private Key, anda dapat mematikan metode login dengan password biasa. Tapi sebelumnya pastikan anda tetap memiliki akses ke root user dan juga telah menyimpan Private Key di tempat yang aman, jangan sampai private key Hilang!
#/etc/ssh/sshd_config
PasswordAuthentication no
service sshd restart
mantaaappppp