Kunci SSH atau SSH keys pada dasarnya adalah dua file yang masing-masing dari file itu di dalamnya memegang kunci enkripsi, satu publik (public key) dan kunci pribadi (private key). Hanya kunci pribadi yang mampu men-dekripsikan pesan atau file yang dienkripsi dengan kunci publik, dan sebaliknya.
Pada tutorial ini, kita akan memanfaatkan SSH key untuk masuk sebagai administrator ke dalam sistem server berbasis Linux. Skenarionya, SSH key ini akan berbeperan sebagai pengganti password untuk user atau admin server. Ketika akses SSH, sistem akan mencocokkan private key yang ada di komputer lokal dengan public key yang ada di komputer server, jika cocok maka otomatis user bisa masuk ke dalam sistem tanpa memasukkan password.
Membuat kunci SSH
Perintah ini akan meng-generate pasangan kunci, yaitu private dan public key.
ssh-keygen -t rsa
Hasilnya seperti berikut
Generating public/private rsa key pair. Enter file in which to save the key (/home/omar/.ssh/id_rsa): Enter saja
Jika ada pertanyaan lagi, Enter saja
Enter passphrase (empty for no passphrase): Enter saja Enter same passphrase again: Enter saja
Dan hasil akhirnya jika berhasil kira-kira seperti ini
Your identification has been saved in /home/omar/.ssh/id_rsa. Your public key has been saved in /home/omar/.ssh/id_rsa.pub. The key fingerprint is: SHA256:kaa+BfhUSnbyLS5XOWrYTJIkx20TCE/LMtosapuh4VQ omar@idnetter.com The key's randomart image is: +---[RSA 2048]----+ |.o.o.. | |.O+++ . | |B.@.... + | |.X + = o . | |+ XE+ o S | |o+oB.. | |o=+ .. | |=.+ .. | |.+ .. | +----[SHA256]-----+
Keterangan:
- Public key disimpan di
/home/omar/.ssh/id_rsa.pub
- Private key disimpan di
/home/omar/.ssh/id_rsa
- omar adalah nama user, tentu ini berbeda dengan user di komputer anda.
Buka public key dengan perintah cat
cat /home/omar/.ssh/id_rsa.pub
Isinya seperti ini
ssh-rsa AAAAB3Nza2C1yc2EAAAADAQABAAASBAQDt2cH7gc3hMIdmEDjMnPhJNUxupF72BKs8z7FiBp65TCm/5NgWIwoXM6wXrrWHz0bJnyWBpBu83AS1Y0SIKCtzOpL8ybtnzMYj/WMtuvWlAqBSDnRlx9U0p6iKonV8Yl0KzvQwhd6VktjfqUHtcWGGrm/bOWM4ixm/qSLtgCYD3w2R7mHd/jFz4SKyadZEndpzdKMgb4UATENVLN7OpsNuxQvwVDeHG18CJ60qJjVIvCL9LUcWZJaF913LS0C7cXDXliof2L1o0JA8UzrI2xIrITqRdxlWjGuhYaKMYWHySBC/XqJWKD0dwWHUTj+i/z5WW5nN0cqYmB2dBT9Mz+8L omar@idnetter.com
Salin isi dari id_rsa.pub
tersebut, nanti akan kita pasang di server target.
Menginstall SSH key di server
Akses SSH ke server dengan akun root atau sudoer, sebagai contoh saya pakai sudo user, dengan nama user sulaiman yang sudah saya buat sebelumnya, Jadi SSH key-nya akan digunakan untuk user sulaiman.
Catatan: Anda bisa pakai user root dan user lain dan meletakkan public key pada user yang bersangkutan seperti langkah berikut ini.
ssh sulaiman@ip-server
Buat folder .ssh, jika belum ada
mkdir ~/.ssh
Mengubah perizinan atau CHMOD 700 folder ssh
chmod 700 ~/.ssh
Membuat file authorized_keys
untuk menyimpan public key
nano ~/.ssh/authorized_keys
Paste public key (isi dari id_rsa.pub
) tadi, lalu simpan, dan jangan lupa CHMOD 600
chmod 600 ~/.ssh/authorized_keys
Jika sudah selesai, tutup koneksi
exit
Login menggunakan SSH key
Jadi sekarang kita sudah punya sepasang kunci SSH yaitu, private key di komputer lokal, dan public key yang sudah kita tanam di komputer server. Berikutnya langsung saja diuji coba.
ssh sulaiman@ip-server
Saat pertama kali melakukan koneksi SSH ke server akan tampil seperti ini
The authenticity of host '192.01.01.02 (192.01.01.02)' can't be established.
ECDSA key fingerprint is SHA256:oyaSCGz5kKoOhboCsiKnckBs7HXmiSC6YBeUtfVaPKeQ4.
Are you sure you want to continue connecting (yes/no)? yes
Jawab yes dan tekan Enter
. Untuk akses berikutnya tidak akan tampil notifikasi lagi, karena sudah tercatat di file ~/.ssh/known_hosts
Selain untuk login dari komputer klien (lokal) dalam hal ini Linux Desktop, prosedur ini juga bisa diterapkan untuk komunikasi antar server (server-ke-server).
Troubleshooting
Jika gagal (masih meminta password login), gunakan opsi -v
(verbose mode) ssh. Verbose mode ini sangat membantu dalam debugging koneksi, otentikasi, dan seputar masalah konfigurasi ssh. Contoh:
ssh -v sulaiman@ip-server
Selesai, selamat mencoba kawan. Oh iya, jika ada kesalahan, mohon dikoreksi.
makasih ilmu nya.. sangat mudah dipahami saya jadi bisa……….
Untuk copy public key ke server target
cat ~/.ssh/id_rsa.pub | ssh -p 22 root@192.168.0.1 'dd of=.ssh/authorized_keys oflag=append conv=notrunc'