Generate Key SSH di Linux dan Windows
Masih melanjutkan postingan sebelumnya tentang remote ssh menggunakan autentikasi key. Kali ini kita akan membuat public dan privat key di sisi client. Setelah berhasil dibuat, public key akan diupload atau ditambahkan ke komputer server.
Membuat Key di Client Linux
Untuk pengguna linux, contoh di sini saya menggunakan Linux Mint 18, kita bisa me-generate key dengan menggunakan perintah ssh-keygen seperti pada saat membuat key di sisi server.
mint@mint ~ $ ssh-keygen -t rsa
Masukkan passphrase atau skip dengan menekan Enter dua kali.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mint/.ssh/id_rsa):
Created directory '/home/mint/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/mint/.ssh/id_rsa.
Your public key has been saved in /home/mint/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:CkvcMirtuDkC9IeMqFE+Chozk4VUoZ+95DYwd/rWI/Q mint@mint
The key's randomart image is:
+---[RSA 2048]----+
| .o. |
| .. |
|.o |
|..+.o. |
|o=+=B+..S |
|@oo***+o |
|*Bo.o*o o |
|*= . oo E |
|=o. ... . |
+----[SHA256]-----+
mint@mint ~ $
Proses generate key telah selesai.
Untuk mengupload publc key ke server, kita bisa menggunakan perintah
ssh-copy-id
.mint@mint ~ $ ssh-copy-id xenial@192.168.43.223 -p 2212
xenial
adalah user yang akan digunakan untuk meremote server nanti, sedangkan 192.168.43.223
adalah ip address milik server. -p
merupakan opsi untuk mendefinisikan port ssh yang digunakan. Apabila service ssh yang berjalan pada server menggunakan port default, maka perintah -p tidak perlu digunakan.
Saat pertama kali melakukan upload key mungkin akan muncul peringatan seperti ini :
The authenticity of host '[192.168.43.223]:2212 ([192.168.43.223]:2212)' can't be established.
ECDSA key fingerprint is SHA256:bJ2G9Un9Cyk56oSY1f0T37E9HGBDU1wH8ruSwC4g1bk.
Are you sure you want to continue connecting (yes/no)? yes
Ketik yes untuk melanjutkan proses.
Selanjutnya kalian akan diminta untuk memasukkan password dari user xenial (user yang akan diberikan key).
/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
xenial@192.168.43.223's password:
Proses akan berlanjut hingga selesai.
Number of key(s) added: 1
Now try logging into the machine, with: "ssh -p '2212' 'xenial@192.168.43.223'"
and check to make sure that only the key(s) you wanted were added.
mint@mint ~ $
Untuk mencobanya, silahkan login ke dalam server menggunakan perintah ssh.
mint@mint ~ $ ssh xenial@192.168.43.223 -p 2212
Apabila ketika membuat key tadi kalian menggunakan passphrase, maka kalian akan diminta untuk memasukkan passphrase tersebut.
Jika passphrase benar atau proses autentikasi berhasil maka kalian akan masuk ke dalam server.
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-87-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
0 packages can be updated.
0 updates are security updates.
New release '18.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Last login: Sat Nov 3 13:56:21 2018 from 192.168.43.223
xenial@ubuntuserv:~$
Membuat Key di Client Windows
Pada sistem operasi windows, pembuatan key ssh bisa dilakukan menggunakan aplikasi puttygen.exe.
Buka aplikasi tersebut kemudian tekan tombol Generate.
Arahkan kursos mouse atau touchpad ke ruang yang kosong dan geser-geser terus hingga proses generate key selesai.
Setelah selesai maka akan muncul key yang telah dibuat :
Key tersebut nantinya akan dicopy ke server. Kemudian kalian juga bisa memasukkan passphrase pada bagian Key passphrase dan Confirm passphrase.
Selanjutnya kita simpan private key dengan menekan tombol Save private key.
Simpan file dengan ekstensi .ppk
Langkah berikutnya adalah mengupload public key ke dalam server. Di sini kita tidak mengupload file public key-nya, melainkan kita akan menyalin public key ke dalam file authorized_keys yang ada di server.
Pertama kita masuk ke server dahulu menggunakan ssh (metode autentikasi password).
Setelah login, kita buat dahulu direktori .sshxenial@ubuntuserv:~$ mkdir .ssh
Kemudian kita buat file authorized keys.
xenial@ubuntuserv:~$ nano .ssh/authorized_keys
Masukkan key yang sebelumnya sudah dibuat oleh puttygen.exe.
GNU nano 2.5.3 File: .ssh/authorized_keys Modified
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhsP1X+6fmX5gRq2CZv78LMprfehA8340UVrXbGeWeyTdPSzvaTf8z89al128PSn9T/o0GRQxPNO2rd+cst3mzLKHZFcVLoMDik+f9p4OzfncNEyQW2GB7FQuIwU/PDtwsFFCdNr6d8ivX/hXh9iO5U1O2xY1UyuXsXJH1NMFChnePJshONpKcgsDZfgDGyj2H6wReIBY8CNIR1R8QSRJRyqgUlhZVKUKc4iupB+G1gokV/SkgofVlJeEw4Gst3ixF5JkFYP0uq1JPDGG/p/JiPVBl/bJps4wyVLBBxUv2oGpcod9xiAF8YcJZ0k42q62pfBcNChPoc4C7G5yYi9muQ== rsa-key-20181114
^G Get Help ^O Write Out ^W Where Is ^K Cut Text ^J Justify ^C Cur Pos
^X Exit ^R Read File ^\ Replace ^U Uncut Text^T To Spell ^_ Go To Line
Simpan file dan ubah permissionnya.
Apabila kita cek menggunakan perintah ls maka isi dari direktori adalah seperti ini :
xenial@ubuntuserv:~$ ls .ssh/
authorized_keys
xenial@ubuntuserv:~$
Key telah berhasil ditambahkan ke server. Selanjutnya adalah melakukan percobaan login ssh menggunakan key yang sudah dibuat tadi.
Buka aplikasi PuTTY. Kemudian isi kolom hostname dan port.
Buka aplikasi PuTTY. Kemudian isi kolom hostname dan port.
Kemudian masuk ke menu Connection > SSH > Auth. Masukkan private key yang sudah disimpan sebelumnya.
Klik Open untuk melakukan login. Apabila kalian menggunakan passphrase, maka keika proses login kalian akan diminta untuk memasukkan passphrase tersebut.
Demikianlah tutorial membuat key SSH di sisi client Linux dan Windows. Selamat mencoba.
Artikel Lainnya :
- Mengatasi error "unexpected SSH2_MSG_UNIMPLEMENTED packet" pada PuTTY
- Menghubungkan Mikrotik GNS3 ke Internet
- Tutorial Memblokir Website dengan Mikrotik