Penggunaan SSH key sangat umum dikalangan system administrator (SRE, DEVOPS, CPE), karena dengan SSH Key ini kita bisa mengakses server remote tanpa perlu menggunakan password. Penggunaan key jauh lebih aman dibandingkan dengan menggunakan password, banyak yang bertanya bagaimana caranya untuk membuat SSH key?
SSH Key ini terbagi menjadi dua bagian private key dan public key, public key ini yang perlu ditambahkan di tiap server yang anda kelola. Untuk private key, ini harus dijaga benar-benar, karena merupakan pintu masuk ke server. Agar SSH key ini bisa digunakan harus menggunakan private key dan public key, untuk itu mari kita buat SSH key untuk pertama kali.
Buka terminal Linux anda
ssh-keygen -b 4096
saat diminta informasi lokasi penyimpanan file SSH “Enter file in which to save the key”, cukup tekan ENTER
di keyboard. Penamaan kedua file ini bisa dibuat sesuka hati, contoh key_kantor, key_freelance atau variasi lainnya, sebaiknya sewaktu membuat key baru menggunakan nama yang mudah dikenali.
Private dan Public key akan disimpan di ~/.ssh
, yang bisa di cek dengan ls -l ~/.ssh
$ ls -l ~/.ssh total 8 -rw------- 1 tommy tommy 3381 Mar 20 15:39 id_rsa -rw-r--r-- 1 tommy tommy 744 Mar 20 15:39 id_rsa.pub
Penjelasan kedia file diatas id_rsa adalah private key dan id_rsa.pub adalah public key. Kedua file ini bisa saja menggunakan nama yang berbeda, tetapi keduanya bisa kita lihat perbedaanya dengan cara melihat isi filenya.
Contoh Private dan Public Key
File id_rsa dan id_rsa.pub adalah file text yang bisa kita lihat isinya, kita akan menggunakan cat
untuk melihatnya.
Contoh isi private key, ditandai dengan baris awal “—–BEGIN OPENSSH PRIVATE KEY—–”
cat ~/.ssh/id_rsa # output -----BEGIN OPENSSH PRIVATE KEY----- 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 -----END OPENSSH PRIVATE KEY-----
Contoh public key
cat ~/.ssh/id_rsa.pub # output ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDEJEmhv35/15/RHQCupyv0rBbuWCWN1YAgk0F5R7umJiIa5Q4ww4sdbeFzPdY3rdSv2/GvrBw1CiG/H+lV98WB5Sf6E9v6wyCGiK2LwyiI5++H4/AQ8Kzz5UXRpa/7gKb33JAosaJDeEMl18Tv8khVXmEeyUcE5g0h6m7FFT+rHqYXBiBqsn430pp87dMT9c8Sf7yYaPOxzz5F9lg4K/nuyiSKszBgn6ohG7CdeK362wgcGRm+gaHrPbA4xiPjSc8X+rL/qMiFmySZZJW3U59fYY5nN/Oxajub9Uq7F3mcputbpvYpAZZiHmt4Ov6aM31qrqkAsWiBj2OSiZmEAwlvVWqyTez/LLHwSjQXpFFLoKIVTwM3Ky8Acozn6EVLPpe6Rz0vZ8kue9KROsH0UhFEUYWZZ+DvYAxxt1bh2DGLNkNJ8f27xK5anKU61LmKATgMY8Hks7DL82LEbHnItf0KbTZF7neXZPIJipaVh+A7Zv3vUuzDPTrenm6nVCvDQkYrR0Nv8a2DKe9C6KyP9QZGcAMdCyKVybi22PhkfEYdxpdDW8PTq03JFflNhTFkXDEZqMMyxSKXQRUdvDp+x0qndS5sikWlWpLhojxYt3z47elZZ59EFdA5ec9F7o97W2IkqqDSLg7vIm2ug4eJ230sva0z2xIRPlBlzTGgww/Xnw== tommy@linux-server
Cara Konek Ke Server Dengan SSH Key
Sesudah kita memiliki private dan public key, sekarang kita belajar bagaimana caranya konek ke server.
Copy isi file ~/.ssh/id_rsa.pub
, lalu tambahkan di server pada file ~/.ssh/authentication_keys
(buat baru file ini, bila tidak ada di server)
Untuk menjalankan proses ini bisa manual, ataupun otomatis dengan bantuan ssh-copy-id
ssh-copy-id tommy@192.168.88.20 # output /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/tommy/.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys tommy@192.168.88.20's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'tommy@192.168.88.20'" and check to make sure that only the key(s) you wanted were added.
pada contoh diatas saya biasa login ke server 192.168.88.20
dengan user tommy
, saat menjalankan perintah diatas anda akan diminta password untuk user tersebut. Lalu coba login kembali, anda bisa login ke server tanpa perlu memasukkan password, anda sudah login ke server 192.168.88.20
ssh tommy@192.168.88.20
Pengamanan Private Key
Cara diatas masih kurang aman, karena bila orang lain mendapatkan private key anda, maka dia bisa dengan leluasa login ke server anda. Untuk itu buat password untuk private key. Kita akan membuat private key dan public key yang baru, tetapi kali ini dilindungi dengan password
ssh-keygen -b 4096 -f ~/.ssh/encrypted_rsa # output Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/tommy/.ssh/encrypted_rsa Your public key has been saved in /home/tommy/.ssh/encrypted_rsa.pub The key fingerprint is: SHA256:ToQJ8EdvuX7WTFfKWkRIxg1f0krrx1hMGkDiOVxnzrE tommy@linux-server The key's randomart image is: +---[RSA 4096]----+ | ... . .+B=*..| | . o + + =oB+=o| | . + = = .EB.| | . o . . o+oo| | S ..=+ | | + + +o o| | o o + . | | o | | | +----[SHA256]-----+
Masukkan password anda dibagian Enter passphrase (empty for no passphrase):
dan Enter same passphrase again:
, password yang anda ketik tidak akan kelihatan, kalo sudah selesai tekan ENTER.
Simpan public key yang baru ke server
ssh-copy-id -i ~/.ssh/encrypted_rsa.pub tommy@192.168.88.20
lalu coba login
ssh -i ~/.ssh/encrypted_rsa tommy@192.168.88.20
kali ini anda harus memasukkan password yang digunakan untuk enkripsi encrypted_rsa
agar penggunaan SSH Key dengan password ini, mirip dengan tanpa password ikuti langkah-langkahnya di Menggunakan SSH Tanpa Memasukkan passphrase Private Key
tehpucuk