Lewati ke isi

Keamanan & CVE

SSH Key vs Password: Kenapa SSH Key Lebih Aman?

Bedanya login SSH dengan password dan SSH key, kenapa key lebih sulit dibobol, dan cara membuat serta merawat SSH key di Linux, Mac, dan Windows.

Terbit 6 menit baca

Jawaban singkat

Password bisa ditebak, dicuri, atau dipakai ulang, sedangkan SSH key memakai pasangan kunci kriptografi yang kunci privatnya tidak pernah dikirim ke server. Buat kunci ed25519 dengan passphrase, pasang kunci publiknya di server, lalu matikan login password.

Daftar isi
  1. Dua cara login, dua cara kerja
  2. Login dengan password
  3. Login dengan SSH key
  4. Perbandingan langsung
  5. Kapan memilih password, kapan SSH key?
  6. Cara pindah ke SSH key dengan aman
  7. Membuat dan memasang kunci
  8. Mematikan login password
  9. Merawat kunci setelah terpasang
  10. Server yang memudahkan semua ini
  11. Pertanyaan yang sering diajukan

SSH adalah cara standar masuk ke server Linux dari jarak jauh, dan ada dua cara membuktikan bahwa kamu berhak masuk: password atau SSH key. SSH key lebih aman, karena tidak ada rahasia yang bisa ditebak dari luar dan kunci rahasianya tidak pernah dikirim ke server.

Pilihan ini bukan soal selera. Server dengan IP publik terus dicoba bot dari internet, dan cara login yang lemah adalah pintu yang paling sering dicoba. Salah pilih bisa berarti server produksi beserta data pelanggan di dalamnya jatuh ke tangan orang lain.

Dua cara login, dua cara kerja

Login dengan password

Kamu mengetik password, lalu password itu dikirim lewat koneksi terenkripsi ke server untuk dicocokkan. Mudah, tapi kelemahannya nyata.

Pertama, bisa ditebak: bot di internet terus mencoba kombinasi username dan password umum ke server yang punya IP publik. Kedua, sering dipakai ulang, sehingga password yang bocor dari satu layanan bisa dicoba di tempat lain. Ketiga, mudah dibagikan lewat chat ke rekan kerja, lalu tidak ada yang tahu siapa saja yang memegangnya.

Ada juga risiko yang jarang disadari. Kalau kamu terhubung ke server tiruan dan mengabaikan peringatan, password yang kamu ketik ikut terkirim ke server itu.

Login dengan SSH key

SSH key adalah pasangan kunci: kunci privat yang tersimpan di laptopmu dan kunci publik yang dipasang di server. Kunci publik boleh diketahui siapa saja. Kunci privat harus dijaga dan tidak pernah meninggalkan perangkatmu.

Saat login, server meminta bukti bahwa kamu memegang kunci privat yang cocok. Laptopmu membuat tanda tangan digital memakai kunci privat, lalu server memeriksanya dengan kunci publik. Kunci privatnya sendiri tidak pernah dikirim, jadi tidak ada yang bisa disadap atau ditebak dari luar.

Kunci privat sebaiknya dilindungi passphrase. Dengan begitu, file kunci yang tercuri tidak bisa langsung dipakai.

Perbandingan langsung

PasswordSSH key
Yang dikirim ke serverPassword itu sendiri (lewat koneksi terenkripsi)Hanya bukti tanda tangan, kunci privat tetap di perangkat
Ketahanan terhadap tebakanBergantung panjang dan keunikan passwordPraktis tidak bisa ditebak
Bila server palsuPassword bisa terkirim ke penyerangKunci privat tidak ikut terkirim
Akses banyak orangCenderung satu password dibagi bersamaSatu kunci per orang, mudah dicabut satu per satu
Kemudahan awalLangsung bisa dipakaiPerlu membuat dan memasang kunci sekali
Risiko utamaDitebak, bocor, dipakai ulangFile kunci privat dicuri tanpa passphrase

Kapan memilih password, kapan SSH key?

Login password masih bisa diterima untuk server latihan yang tidak menyimpan data penting. Syaratnya, passwordnya panjang, unik, dan dibantu Fail2Ban. Keunggulannya hanya satu: langsung bisa dipakai tanpa menyiapkan apa pun.

Untuk server produksi yang menyimpan data pelanggan, pilih SSH key dan matikan login password. Usaha menyiapkan kunci cuma sekali, sedangkan manfaatnya terasa setiap hari: satu kunci per orang, akses yang bisa dicabut satu per satu, dan tidak ada yang bisa ditebak bot.

Di tim yang anggotanya keluar masuk, SSH key juga lebih mudah dikelola. Mencabut satu baris kunci jauh lebih sederhana daripada mengganti password bersama lalu mengabarkannya ke semua orang.

Cara pindah ke SSH key dengan aman

Membuat dan memasang kunci

Linux, macOS, dan Windows 10 atau 11 sudah punya OpenSSH bawaan, jadi perintahnya sama di terminal, Terminal macOS, atau PowerShell.

  1. Buat pasangan kunci dengan algoritma ed25519, lalu isi passphrase saat diminta1.
  2. Salin kunci publik ke server dengan ssh-copy-id. Di Windows yang belum punya perintah ini, salin isi file .pub ke ~/.ssh/authorized_keys di server.
  3. Coba login. Kalau masuk tanpa diminta password akun server, kunci sudah bekerja.
  4. Matikan login password setelah yakin kunci berfungsi.
ssh-keygen -t ed25519 -C "budi-laptop-kantor"
ssh-copy-id budi@IP-SERVER
ssh budi@IP-SERVER

Komentar setelah -C membantu mengenali kunci milik siapa dan dari perangkat mana. Kunci privat tersimpan di ~/.ssh/id_ed25519, kunci publiknya di ~/.ssh/id_ed25519.pub. Hanya file .pub yang boleh disalin ke server.

Mematikan login password

Set PasswordAuthentication no di /etc/ssh/sshd_config2, cek juga folder /etc/ssh/sshd_config.d/, lalu restart layanan SSH. Pastikan nilainya sudah berlaku dengan:

sudo sshd -T | grep -i passwordauthentication

Langkah pengamanan server lainnya, seperti firewall dan Fail2Ban, dibahas di cara mengamankan VPS baru.

Merawat kunci setelah terpasang

Selalu pakai passphrase. Supaya tidak repot mengetiknya terus, pakai ssh-agent yang menyimpan kunci di memori selama sesi kerja.

Biasakan satu kunci per orang dan per perangkat, jangan satu kunci bersama untuk seluruh tim. Saat karyawan keluar atau laptop hilang, hapus baris kuncinya dari authorized_keys. Periksa file itu secara berkala dan hapus kunci yang tidak dikenali.

Backup kunci privat dengan aman, misalnya di password manager tim, bukan di grup chat, email, atau repository kode.

Untuk deploy otomatis dari CI atau server lain, buat kunci khusus dengan hak akses sesempit mungkin. Jangan memakai kunci pribadi admin untuk keperluan otomatis.

Server yang memudahkan semua ini

Di VPS High Performance Nivelva, kamu mendapat akses SSH dan console, firewall dan security group yang bisa kamu atur sendiri, serta Anti-DDoS Magic Transit di semua paket. Console berguna sebagai jalan masuk cadangan saat pengaturan SSH keliru. Latar belakang soal VPS ada di artikel apa itu VPS.

Pertanyaan yang sering diajukan

Apakah SSH key bisa diretas?

Kunci ed25519 praktis tidak bisa ditebak. Risiko nyatanya adalah file kunci privat dicuri dari perangkatmu, karena itu lindungi dengan passphrase dan jaga perangkatnya.

Bagaimana kalau kunci privat hilang?

Kamu tidak bisa login dengan kunci itu lagi. Masuk lewat console penyedia atau kunci lain yang masih terdaftar, hapus kunci lama dari authorized_keys, lalu pasang kunci baru.

Lebih baik RSA atau ed25519?

Untuk kunci baru, ed25519 adalah pilihan yang umum dipakai karena kuncinya pendek dan cepat. RSA masih diperlukan bila server atau aplikasi lama belum mendukung ed25519, dan sebaiknya memakai panjang kunci minimal 3072 bit.

Apakah satu SSH key boleh dipakai di banyak server?

Boleh. Kunci publik yang sama bisa dipasang di beberapa server. Yang penting, setiap orang dan perangkat punya kunci sendiri supaya akses bisa dicabut satu per satu.

Sumber & referensi

  1. 1

    Opsi pembuatan kunci, termasuk tipe ed25519 dan passphrase, dijelaskan di halaman manual resmi OpenSSH ssh-keygen.

  2. 2

    Opsi PasswordAuthentication dan PermitRootLogin dijelaskan di halaman manual resmi OpenSSH sshd_config.

Baca juga