Remote Ssh Memakai Autentikasi Key
SSH merupakan protokol remote connection yang sanggup dikatakan wajib dipakai apabila kita ingin meremot server yang berada di luar lokasi kita. Jika dibandingkan dengan telnet, memakai ssh akan lebih baik alasannya yakni adanya enkripsi terhadap koneksi yang berlangsung.
Akan tetapi, meskipun dirasa sudah cukup aman, melaksanakan remote ssh dengan metode autentikasi username dan password masih memeiliki kelemahan/celah. Yakni adanya kemungkinan untuk dibobol memakai serangan brute force.
Belum lagi kalau kita lupa dengan password usernya. Kalau kita hanya meremot satu server saja mungkin kita masih sanggup mengingat passwordnya. Namun bila kita harus melaksanakan remot di beberapa server yang passwordnya mungkin berbeda-beda, bukan mustahil kita sanggup lupa dengan salah satu passwordnya.
Baca Juga :
- Mengaktifkan IP Forwarding Pada Linux
- Cara Reset Password Root
- Membuat Cloud Storage dengan Owncloud
Untuk mengatasi permasalahan di atas, kita sanggup memakai metode autentikasi key untuk remot ssh. Dengan memakai autentikasi key, kita tidak perlu memasukkan password milik user. Client cukup melaksanakan initial connection dengan memakai key yang sudah di-generate oleh server atau client itu sendiri.
Metode autentikasi key memakai dua buah key yakni public key dan privat key. Public key akan diletakkan di server, sementara privat key diletakkan di client yang akan meremote server.
Dari dua buah kunci tersebut. Yang sangat penting yakni privat key. Sebab privat key ini menjadi kunci untuk membuka public key yang sudah tersimpan di server. Oleh alasannya yakni itu, penting untuk selalu menjaga privat key ini. Apabila hingga diketahui oleh pihak yang tidak bertanggung jawab maka ia sanggup memanfaatkan privat key tersebut untuk mengakses server.
Untuk menciptakan (generate) key baik public maupun privat key, sanggup dilakukan di sisi server maupun di sisi client. Apabila proses generate key dilakukan di sisi server, maka client harus mengunduh private key yang sudah dibentuk oleh server tadi.
Sedangkan bila proses generate key dilakukan di sisi client, maka public key harus diupload ke server.
Catatan : untuk melaksanakan tutorial ini, pastikan kalian sudah mengaktifkan service ssh server dan juga sudah mengkonfigurasinya. Apabila belum silahkan lihat postingan wacana konfigurasi SSH Server.
Membuat (Generate) Key
Pada tutorial ini, server yang dipakai yakni Ubuntu 16.04. Proses generate key akan dilakukan pada server. Sehingga untuk sanggup mengakses server, client perlu mempunyai private key-nya.Perintah untuk menciptakan key yakni :
ssh-keygen -t rsa
Kemudian tentukan lokasi untuk menyimpan key nanti. Secara default, lokasi untuk menyimpan key berada di direktori /home/nama_user/.ssh dengan nama key-nya yakni id.rsa.
Generating public/private rsa key pair. Enter file in which to save the key (/home/xenial/.ssh/id_rsa): /home/xenial/.ssh/id_rsa already exists. Overwrite (y/n)? y
Apabila direktori belum ada, maka sistem akan membuatnya terlebih dahulu, Namun bila direktori sudah pernah dibentuk sebelumnya, akan muncul peringatan untuk melaksanakan overwrite.
Selanjutnya yakni memasukkan passphrase. Passphrase ini dipakai untuk autentikasi ketika kita akan membuka publick key memakai private key nanti. Apabila tidak ingin memakai passphrase, maka skip langkah tersebut dengan menekan tombol Enter.
Enter passphrase (empty for no passphrase): Enter same passphrase again:
Setelah proses generate selesai, sistem akan memberitahukan letak public key dan privat key (id_rsa).
Your identification has been saved in /home/xenial/.ssh/id_rsa. Your public key has been saved in /home/xenial/.ssh/id_rsa.pub. The key fingerprint is: SHA256:8/JWl7tcXvBpcT3cy76AJCNA+ODvwqL7V/6YaC3gx3Q xenial@ubuntuserv The key's randomart image is: +---[RSA 2048]----+ | .. | | o. | | . o. | | . .. . o| | . .So . .=+| | . ..E .o+ o +o*| | ..+.= . .o o *+| | ..o*ooo o. .=o.| |+oo+o.o.... o+o| +----[SHA256]-----+ xenial@ubuntuserv: $
Selanjutnya kita cek isi direktori .ssh.
xenial@ubuntuserv: $ ls .ssh/ id_rsa id_rsa.pub
Lalu ubah nama file id.rsa.pub menjadi authorized_keys.
xenial@ubuntuserv: $ cd .ssh/ xenial@ubuntuserv: /.ssh$ mv id_rsa.pub authorized_keys
Sampai di sini proses generate key di server sudah selesai. Cek kembali isi direktori .ssh.
xenial@ubuntuserv: /.ssh$ ls authorized_keys id_rsa
Pengujian Akses SSH
Pada Linux Sebelum sanggup mengakses ssh memakai key, client harus mengunduh file id_rsa yang ada pada server dan meletakkannya ke dalam direktori .ssh pada komputer client.
mkdir /.ssh
Ubah permission biar hanya user tersebut yang sanggup membacanya :
chmod 600 /.ssh
Untuk mengunduh private key, kita sanggup memakai perintah
scp
menyerupai berikut :scp username@hostname_server:lokasi_file lokasi_tujuan
Contoh :
scp -P 2212 xenial@192.168.43.232: /.ssh/id_rsa /.ssh
-P
di sini dipakai untuk mendefinisikan port ssh. Apabila port ssh yang dipakai yakni default (22) maka tidak perlu memakai opsi ini.xenial@192.168.43.232
merupakan username dan hostname atau ip address dari server: /.ssh/id_rsa
maksudnya yakni lokasi file id_rsa berada, simbol melambangkan home direktori dari user xenial/.ssh
merupakan direktori tujuan, yakni /home/namauser/.ssh
Selanjutnya masukkan password dari user xenial (username yang ada di server) untuk menfkonfirmasi proses transfer file dari server.
Setelah itu client sanggup melaksanakan remote ssh ke server dengan perintah
ssh user@hostname_server
. Jika service ssh memakai port selain 22, maka tambahkan opsi -p [nomor_port]
.Pada Windows
Untuk client windows, kita sanggup memakai aplikasi PuTTY untuk melaksanakan remote ssh. Akan tetapi sebelum sanggup digunakan, kita perlu mengubah private key-nya terlebih dahulu biar sanggup dibaca oleh PuTTY
Unduh dahulu file id_rsa dari server. Bisa memakai aplikasi file transfer menyerupai FileZilla atau WinSCP. Kemudian login memakai username dan password yang ada pada server. Contoh di sini saya memakai WinSCP.
Apabila muncul peringatan warning, silahkan pilih Yes.
Karena lokasi file id_rsa berada di dalam direktori ssh yang terhidden. Maka untuk mencari file tersebut kau sanggup memakai tombol Find Files. Kemudian klik Start.
Setelah muncul list file yang ada. Klik pada file yang akan diunduh yakni id_rsa, kemudian pilih Download.
Tahap selanjutnya yakni mengkonversi key yang telah diunduh tadi menjadi tipe privat key yang sanggup dipakai oleh PuTTY. Kita akan memakai aplikasi puttygen.exe
Buka aplikasi puttygen.exe kemudian klik tombol Load.
Cari privat key yang sudah diunduh tadi. Lalu Open.
Jika pada ketika menciptakan key di server tadi kalian memakai passphrase, maka untuk membuka key ini kalian akan diminta untuk memasukkan passphrase tersebut.
Setelah file berhasil diimpor, selanjutnya kita save file tersebut. Pilih Save private key.
Simpan file dengan tipe ekstensi .ppk (PuTTY Private Key).
Sekarang kita coba kanal remote ssh memakai PuTTY. Buka aplikasinya, kemudian isi kolom hostname dan port number.
Kemudian masuk ke sajian di samping kiri, Connection > SSH > Auth. Masukkan private key, kemudian Open.
Jika kalian tidak memakai passphrase ketika proses generate key tadi, maka akan eksklusif masuk ke dalam server. Apabila memakai passphrase, maka kalian akan diminta untuk memasukan passphrase-nya.
Pada tutorial ini, user yang dipakai untuk login remote ssh yakni user xenial (bukan root). Apabila kalian ingin memakai user root, maka pada ketika proses generate key harus dilakukan oleh user root.
Tambahan :
Untuk lebih meningkatkan keamanan dalam melaksanakan remote ssh, kita sanggup menonaktifkan autentikasi password. Dengan begitu client hanya sanggup mengakses server memakai key.
Untuk menonaktifkan autentikasi password, edit file sshd_config. Kemudian ubah nilai pada baris PasswordAuthentication menjadi no. Seperti ini :
# Change to no to disable tunnelled clear text passwords PasswordAuthentication no
Dengan catatan, ketika kita hendak menciptakan key gres untuk client yang lain misalnya, autentikasi password ini perlu diaktifkan kembali. Karena autentikasi tersebut akan dipakai ketika client akan mengunduh private key atau mengupload public key ke server.
Demikianlah tutorial mengakses remote SSH memakai autentikasi key. Sebenarnya masih ada tutorial untuk menciptakan key di sisi client, namun biar postingan ini tidak terlalu panjang, maka akan dilanjut di postingan yang lainnya.
Sumber https://dhantama.blogspot.com/