Keamanan server merupakan salah satu aspek paling penting dalam administrasi sistem Linux. Salah satu kesalahan yang masih sering ditemukan adalah penggunaan autentikasi berbasis password untuk akses SSH.
Meskipun terlihat praktis, login menggunakan password memiliki berbagai risiko seperti serangan brute force, password lemah, hingga kebocoran kredensial.
Solusi yang direkomendasikan oleh para administrator sistem profesional adalah menggunakan SSH Key-Based Authentication. Metode ini memanfaatkan pasangan kunci kriptografi sehingga akses ke server menjadi jauh lebih aman dibandingkan password biasa.
Pada artikel ini, Anda akan mempelajari cara membuat SSH Key Pair, menghubungkan key ke server, menonaktifkan login password, hingga cara mengatasi berbagai masalah koneksi SSH yang sering terjadi.
Apa Itu SSH Key-Based Authentication?
SSH Key-Based Authentication adalah metode autentikasi yang menggunakan sepasang kunci kriptografi:
- Private Key (kunci pribadi)
- Public Key (kunci publik)
Private Key disimpan di komputer client dan harus dijaga kerahasiaannya.
Public Key disimpan pada server Linux yang akan diakses.
Saat melakukan koneksi SSH, server akan memverifikasi kecocokan kedua kunci tersebut. Jika cocok, akses diberikan tanpa perlu memasukkan password.
Keunggulan SSH Key Authentication
Beberapa keuntungan menggunakan SSH Key antara lain:
- Lebih aman dibanding password
- Sulit ditembus brute force attack
- Mendukung otomatisasi script
- Mempercepat proses login
- Cocok untuk administrasi server skala besar
- Mendukung integrasi dengan Git dan DevOps
Persiapan Sebelum Konfigurasi
Pastikan Anda memiliki:
- Client Linux, macOS, atau Windows dengan OpenSSH
- Akses SSH ke server
- Akun pengguna pada server Linux
- Hak akses sudo atau root
Cek versi SSH:
ssh -V
Contoh output:
OpenSSH_9.6p1
Cara Generate SSH Key Pair
Pada komputer client jalankan:
ssh-keygen -t ed25519 -C "admin@server"
Keterangan:
-t ed25519menggunakan algoritma modern dan aman-Cuntuk memberi komentar identifikasi key
Jika ingin kompatibilitas lebih luas:
ssh-keygen -t rsa -b 4096
Setelah selesai akan terbentuk:
~/.ssh/id_ed25519
~/.ssh/id_ed25519.pub
atau
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
Menambahkan Passphrase
Saat proses pembuatan key, Anda dapat menambahkan passphrase.
Keuntungan:
- Private key tetap aman jika perangkat hilang
- Menambah lapisan keamanan tambahan
Cara Menyalin Public Key ke Server
Metode paling mudah:
ssh-copy-id user@ip-server
Contoh:
ssh-copy-id walid@192.168.1.10
Public key akan otomatis ditambahkan ke:
~/.ssh/authorized_keys
Jika ssh-copy-id Tidak Tersedia
Gunakan perintah berikut:
cat ~/.ssh/id_ed25519.pub
Salin hasilnya lalu login ke server:
ssh user@ip-server
Buat direktori SSH:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
Edit file:
nano ~/.ssh/authorized_keys
Paste public key kemudian simpan.
Atur permission:
chmod 600 ~/.ssh/authorized_keys
Menguji Login Menggunakan SSH Key
Coba login:
ssh user@ip-server
Jika berhasil, Anda akan masuk tanpa perlu memasukkan password akun server.
Jika menggunakan key khusus:
ssh -i ~/.ssh/id_ed25519 user@ip-server
Menonaktifkan Password Authentication
Setelah memastikan login SSH Key berhasil, langkah berikutnya adalah menonaktifkan login menggunakan password.
Edit konfigurasi SSH Server:
sudo nano /etc/ssh/sshd_config
Ubah parameter berikut:
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
Simpan konfigurasi.
Restart layanan SSH:
Pada Debian/Ubuntu:
sudo systemctl restart ssh
Pada RHEL/CentOS:
sudo systemctl restart sshd
Verifikasi Konfigurasi
Periksa status SSH:
sudo systemctl status ssh
atau
sudo systemctl status sshd
Pastikan service berjalan normal tanpa error.
Tips Keamanan Tambahan untuk SSH
Selain menggunakan SSH Key Authentication, lakukan juga beberapa langkah berikut:
Ganti Port SSH Default
Misalnya menggunakan port 2222:
Port 2222
Nonaktifkan Login Root
PermitRootLogin no
Batasi User yang Boleh Login
AllowUsers admin walid
Gunakan Firewall
Contoh UFW:
sudo ufw allow 2222/tcp
Aktifkan Fail2Ban
sudo apt install fail2ban
Fail2Ban dapat membantu memblokir percobaan login yang mencurigakan.
Troubleshooting SSH Key Authentication
Berikut beberapa masalah yang sering terjadi.
Permission Ditolak (Permission Denied)
Periksa hak akses:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Public Key Tidak Terbaca
Pastikan key tersimpan pada:
~/.ssh/authorized_keys
Bukan:
authorized_keys.txt
SSH Menggunakan Password Terus
Gunakan mode debug:
ssh -v user@ip-server
atau:
ssh -vvv user@ip-server
Lihat apakah public key berhasil dikirim ke server.
SSH Service Gagal Restart
Validasi konfigurasi:
sshd -t
Jika ada kesalahan sintaks, sistem akan menampilkan lokasi error.
Server Tidak Bisa Dihubungi
Periksa:
ping ip-server
dan:
nc -zv ip-server 22
Pastikan firewall atau security group tidak memblokir koneksi.
Kapan Sebaiknya Menggunakan SSH Key Authentication?
SSH Key Authentication sangat direkomendasikan untuk:
- Server produksi
- VPS dan Dedicated Server
- Infrastruktur cloud
- Administrasi jarak jauh
- CI/CD Pipeline
- Git Server
- DevOps Environment
Semakin penting sistem yang Anda kelola, semakin besar kebutuhan untuk menghindari autentikasi berbasis password.

Kesimpulan
SSH Key-Based Authentication merupakan standar keamanan modern yang wajib diterapkan pada server Linux. Dibandingkan login menggunakan password, metode ini jauh lebih aman, lebih cepat, dan lebih sulit diserang oleh pelaku brute force maupun pencurian kredensial.
Dengan membuat SSH Key Pair, menyalin Public Key ke server, serta menonaktifkan Password Authentication, Anda dapat meningkatkan keamanan server secara signifikan tanpa mengurangi kenyamanan administrasi.
Mulailah menerapkan SSH Key Authentication pada seluruh server Linux yang Anda kelola agar infrastruktur lebih aman dan profesional.
FAQ
1. Apakah SSH Key lebih aman dibanding password?
Ya. SSH Key menggunakan kriptografi yang jauh lebih sulit ditembus dibanding password biasa.
2. Algoritma SSH Key apa yang direkomendasikan?
Ed25519 merupakan pilihan yang direkomendasikan karena cepat dan aman.
3. Apakah password harus langsung dinonaktifkan?
Tidak. Pastikan SSH Key berfungsi terlebih dahulu sebelum menonaktifkan login password.
4. Apa fungsi file authorized_keys?
File tersebut berisi daftar public key yang diizinkan untuk login ke server.
5. Mengapa login SSH masih meminta password?
Biasanya karena permission salah, public key belum terpasang, atau konfigurasi SSH belum diterapkan.
6. Apakah SSH Key bisa digunakan di Windows?
Ya. Windows modern sudah mendukung OpenSSH Client dan OpenSSH Server.
“Keamanan server bukan tentang membuat akses lebih sulit, tetapi memastikan hanya orang yang tepat yang dapat masuk.”
Apakah Anda sudah menggunakan SSH Key Authentication pada server Linux yang dikelola? Bagikan pengalaman atau kendala Anda di kolom komentar.
Jika artikel ini bermanfaat, jangan lupa untuk membagikannya kepada rekan SysAdmin, Network Administrator, dan praktisi Linux lainnya. Subscribe blog ini untuk mendapatkan tutorial Linux Server, DevOps, keamanan jaringan, dan administrasi sistem terbaru.
Baca juga artikel lainnya seputar Linux Server, Proxmox, Docker, Kubernetes, DNS Server, dan keamanan infrastruktur IT.