SSH login berbasis kata sandi rentan terhadap serangan brute-force dan kurang efisien. Menggunakan SSH Key Pair (kunci publik dan privat) memungkinkan login yang lebih cepat, otomatis, dan aman ke server remote.
Proses konfigurasi meliputi empat langkah utama: membuat pasangan kunci di komputer lokal menggunakan ssh-keygen, menyalin kunci publik ke server melalui ssh-copy-id atau secara manual, menguji koneksi login berbasis kunci, dan menonaktifkan autentikasi password di file konfigurasi SSH server untuk keamanan maksimal.
Metode login SSH menggunakan kata sandi (password) tidak hanya kurang praktis, tetapi juga lebih rentan terhadap serangan brute-force. Dengan mengonfigurasi autentikasi berbasis SSH Key Pair (kunci publik dan privat), Kita dapat masuk ke server secara cepat, otomatis, dan jauh lebih aman.
Prasyarat
- Komputer lokal dengan tool SSH client.
- Akses ke server remote melalui SSH (dengan password).
- Akses sudo /
rootpada server remote (jika ingin menonaktifkan login password).
Langkah-Langkah Konfigurasi
1.Buat SSH Key Pair di Komputer Lokal:Lakukan langkah ini di terminal komputer lokal, bukan di server remote.
Buka terminal di komputer lokal dan jalankan perintah berikut untuk membuat pasangan kunci (publik dan privat) menggunakan algoritma Ed25519 (sangat disarankan karena cepat dan aman):
Bash
ssh-keygen -t ed25519 -C "[email protected]"
Jika menggunakan sistem lama yang belum mendukung Ed25519, gunakan RSA 4096-bit:ssh-keygen -t rsa -b 4096
- Lokasi penyimpanan: Tekan
Enteruntuk menyetujui lokasi default (~/.ssh/id_ed25519). - Passphrase: Tekan
Enterdua kali jika ingin login benar-benar tanpa ketik apapun. Jika ingin ekstra aman, masukkan passphrase singkat.
2.Salin Public Key ke Server Remote:Mengirimkan kunci publik agar server mengenali komputer kita.
Ada dua cara untuk menyalin kunci publik ke server:
Cara 1: Menggunakan ssh-copy-id (Paling simpel)
Jalankan perintah berikut dari komputer lokal:
Bash
ssh-copy-id username@ip_address_server
Ganti username dan ip_address_server sesuai detail server kita. Masukkan password SSH untuk terakhir kalinya saat diminta.
Cara 2: Manual (Gunakan ini jika ssh-copy-id tidak tersedia)
Tampilkan isi kunci publik :
Bash
cat ~/.ssh/id_ed25519.pub
Salin seluruh teks yang muncul, lalu login ke server remote dan masukkan kunci tersebut ke dalam berkas authorized_keys:
Bash
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
# Tempelkan (paste) public key di sini, lalu simpan (Ctrl+O, Enter, Ctrl+X)
chmod 600 ~/.ssh/authorized_keys
3.Uji Coba Login SSH:Pastikan otentikasi key berfungsi sebelum menutup sesi.
Buka jendela terminal baru di komputer lokal dan coba login lagi ke server:
Bash
ssh username@ip_address_server
Jika langkah konfigurasi benar, kita akan langsung masuk ke dalam server tanpa diminta memasukkan kata sandi.
4.Matikan Otentikasi Password (Sangat Disarankan):Langkah opsional demi keamanan ekstra agar server kebal dari brute-force password.
Penting: Pastikan login dengan key sudah berhasil pada Step 3 sebelum melakukan langkah ini. Jangan tutup sesi terminal yang sedang aktif sampai kita berhasil menguji koneksi di terminal lain.
- Masuk ke server remote dan buka file konfigurasi SSH:
Bash
sudo nano /etc/ssh/sshd_config
- Cari dan ubah parameter berikut (hapus tanda
#jika ada di depannya):
Plaintext
PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
- Simpan file dan restart service SSH:
Bash
# Untuk Ubuntu / Debian
sudo systemctl restart ssh
# Untuk CentOS / RHEL / Fedora
sudo systemctl restart sshd
Ringkasan Perintah Penting
| File / Folder | Fungsi | Izin Akses (Permission) |
~/.ssh/id_ed25519 | Kunci Privat (Komputer Lokal - Rahasia) | 600 |
~/.ssh/id_ed25519.pub | Kunci Publik (Boleh dibagikan) | 644 |
~/.ssh/authorized_keys | Daftar kunci publik yang diizinkan (Server Remote) | 600 |
~/.ssh/ | Folder direktori SSH | 700 |
*article ini digenerate dengan bantuan AI, diedit dan direview oleh Aries P. Wibowo
Hands-on IT Manager, membangun dan mengelola infrastruktur IT di industri manufaktur, implementasi ERP, dan mengembangkan software pendukung. Menjembatani celah antara kebutuhan bisnis dan solusi teknologi. Berteman dengan Ubuntu sejak Lucid Lynx, peracik kopi di waktu senggang.



