Cara Membuat dan Menggunakan Pasangan Kunci SSH
SSH adalah protokol jaringan kriptografi yang memungkinkan pengguna dapat mengakses server secara aman pada jaringan yang tidak aman. Secara default, SSH dapat diakses dengan kata sandi sebagai otentikasi.
Serangan umum terhadap SSH adalah dengan melakukan peretasan kata sandi brute-force, yaitu menebak kata sandi dengan bantuan aplikasi. Untuk mengurangi resiko seperti ini sangat direkomendasikan untuk menggunakan otentikasi dengan pasangan kunci.
Pasangan kunci adalah dua set kunci yang salah satunya akan ditaruh di sisi server, dan kunci lainnya akan digunakan untuk mengakses server. Analoginya seperti anak kunci (kunci privat) dan lubang kunci pada pintu (kunci publik). Untuk memasuki rumah, kita harus menggunakan anak kunci supaya bisa membuka pintu, meski saat ini sudah banyak pintu yang dikunci menggunakan PIN. Memang PIN akan memudahkan pemilik rumah untuk keluar masuk rumah tanpa harus membawa-bawa kunci, namun juga mudah disusupi oleh orang-orang yang tidak diinginkan, seperti maling.
Membuat Pasangan Kunci
Sebenarnya ada 4 jenis kunci SSH, di antaranya: DSA, RSA, ECDSA dan Ed25519. Sangat direkomendasikan hanya menggunakan RSA dengan panjang 4096 bit, dan jenis Ed25519.
RSA merupakan jenis kunci SSH default pada banyak sistem saat ini, namun apabila dibandingkan dengan Ed25519, RSA lebih lamban dan lebih rentan. Ed25519 hanya tersedia di sistem-sisterm terbaru yang dikenalkan pada OpenSSH versi 6.5 adalah implementasi ECDSA menggunakan Twisted Edward Curve. Metode tersebut menawarkan keamanan yang lebih baik dengan performa lebih cepat dibandingkan dengan DSA ataupun ECDSA.
Kunci publik Ed25519 sangat kompak, hanya terdiri dari 68 karakter, dibandingkan dengan RSA 3072 yang terdiri dari 544 karakter. Membuat kunci Ed25519 sama cepatnya dengan saat menggunakannya untuk mengakses server. Buka terminal dengan ketikan perintah berikut untuk membuat kunci SSH:
ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -C "[email protected]"
Kita akan ditanyakan untuk memasukkan kata sandi untuk kunci ini, disarankan menggunakan kombinasi kata yang sulit ditebak, bahkan oleh kita sendiri.
- -o: menggunakan format OpenSSH terbaru
- -a: jumlah putaran KDF (Key Derivation Function). Makin tinggi angka menghasilkan verifikasi kata sandi lebih lamban, namun menambah ketahanan serangan brute-force apabila kunci privat tercuri.
- -t: menentukan jenis kunci yang akan dibuat.
- -f: menentukan lokasi file-file dari pembuatan kunci. Jika tidak digunakan, maka file akan tersimpan di folder .ssh
- -C: Opsi menentukan komentar, yang akan ditambahkan pada akhir isi file kunci publik. Jika tidak digunakan, maka komentar akan diisi dengan <login>@<hostname>.
Untuk jenis RSA, gunakan perintah berikut:
ssh-keygen -t rsa -b 4096
- -b: panjang bit.
Selanjutnya salin kunci publik ke server yang kita inginkan:
ssh-copy-id namauser_server@alamat_ip_server
Semua kunci publik yang berada di folder .ssh akan disalin ke server yang lokasi filenya ada di .ssh/authorized_keys. Selanjutnya kita bisa masuk ke server dengan kunci privat. Ubah layanan SSH untuk hanya menerima kunci bukan kata sandi.
Photo by Fons Reijsbergen from FreeImages