Kata sandi bisa ditebak seribu kali sedetik oleh mesin yang tak pernah tidur. Kunci tidak bisa: tak ada yang cukup pendek untuk dicoba. Berpindah makan waktu sepuluh menit dan melenyapkan satu golongan serangan seutuhnya.

Buat pasangannya

ssh-keygen -t ed25519 -C "you@yourmachine"

Ed25519 adalah bawaan masa kini: pendek, cepat, dan kuat. Beri ia frasa sandi - kalau laptopnya dicuri, frasa itulah satu-satunya penghalang antara si pencuri dan server Anda.

Pasang paruh publiknya

ssh-copy-id ops@your-server

Itu menambahkan kunci publiknya ke ~/.ssh/authorized_keys di server. Paruh pribadinya tak pernah meninggalkan mesin Anda dan memang tak boleh.

Uji ia di jendela BARU

Jangan tutup sesi yang sedang Anda pakai. Buka terminal kedua lalu masuk dengan kuncinya. Kalau gagal, jendela pertama masih ada untuk memperbaikinya dari sana.
ssh ops@your-server

Baru matikan kata sandinya

# /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
# then
systemctl reload ssh

Muat ulang, bukan mulai ulang: memuat ulang menjaga sesi yang ada tetap hidup, sehingga sebuah kekeliruan tidak memutus Anda.

Kalau ia tidak berhasil

  • Izin. SSH menolak kunci yang ada di direktori yang bisa dibaca orang lain: chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys
  • Pengguna yang salah. Kuncinya diletakkan di direktori rumah pengguna yang Anda pakai untuk masuk, bukan milik root.
  • Baca alasannya. ssh -v ops@server mencetak setiap kunci yang ditawarkannya dan mengapa masing-masing ditolak.
Satu kunci per mesin, bukan satu kunci yang disalin ke semua mesin. Ketika sebuah laptop hilang, Anda menghapus satu baris di server, dan tak ada lagi yang berubah.