Cara Mengatur SSH di Fedora dengan Autentikasi Berbasis Kunci
Panduan teknis komprehensif untuk mengatur layanan Secure Shell (SSH) pada sistem operasi Fedora, dengan fokus pada autentikasi berbasis kunci publik-privat untuk akses jarak jauh yang aman.
Mulai TutorialPendahuluan
Dokumentasi ini menyediakan panduan lengkap untuk mengatur layanan Secure Shell (SSH) pada sistem operasi Fedora, dengan fokus pada autentikasi berbasis kunci publik-privat. Tujuannya adalah memungkinkan akses jarak jauh yang aman tanpa ketergantungan pada kata sandi, sambil memastikan pengguna lain hanya dapat mengakses server dengan kunci publik yang valid.
🎯 Tujuan Tutorial:
- Menginstal dan mengaktifkan OpenSSH Server di Fedora.
- Membuat pasangan kunci SSH untuk autentikasi aman.
- Menyalin kunci publik ke server untuk akses tanpa kata sandi.
- Mengkonfigurasi server SSH untuk hanya menerima autentikasi kunci.
- Mengatur firewall dan SELinux untuk mendukung SSH.
- Menyediakan langkah pemecahan masalah umum.
🛠️ Tools yang Digunakan:
- OpenSSH Server - Layanan SSH di Fedora.
- ssh-keygen - Alat untuk membuat kunci SSH.
- ssh-copy-id - Menyalin kunci publik ke server.
- firewalld - Pengelolaan firewall di Fedora.
- SELinux - Kontrol keamanan tambahan.
⚠️ Peringatan: Pastikan Anda memiliki izin administratif untuk mengkonfigurasi server. Salah konfigurasi dapat menyebabkan hilangnya akses jarak jauh. Selalu uji perubahan di sesi terpisah sebelum menutup koneksi aktif.
Instalasi dan Aktivasi Layanan SSH
1. Instalasi OpenSSH Server #
Apa: Menginstal paket openssh-server
di Fedora.
Mengapa: OpenSSH menyediakan protokol komunikasi jarak jauh yang aman.
sudo dnf install openssh-server
Catatan: Jika paket sudah terpasang, lanjutkan ke langkah berikutnya.
2. Mengaktifkan Layanan SSH #
Apa: Mengaktifkan sshd
agar berjalan saat boot dan mulai layanan saat ini.
sudo systemctl enable sshd
sudo systemctl start sshd
3. Memverifikasi Status #
Apa: Memeriksa apakah layanan sshd
berjalan.
sudo systemctl status sshd
Hasil yang diharapkan: Status active (running)
. Jika gagal, periksa log dengan sudo journalctl -u sshd
.
Potensi Error: Koneksi internet tidak stabil atau repositori Fedora salah. Gunakan sudo dnf repolist
untuk memeriksa.
Pembuatan Pasangan Kunci SSH
1. Menghasilkan Kunci #
Apa: Membuat kunci RSA 4096-bit di komputer klien.
ssh-keygen -t rsa -b 4096
2. Menentukan Lokasi #
Apa: Gunakan lokasi default (~/.ssh/id_rsa
) atau timpa jika sudah ada.
3. Mengatur Passphrase #
Apa: Pilih antara passphrase kosong (login otomatis) atau passphrase kuat (keamanan tambahan).
Opsi:
- Login Otomatis: Tekan
Enter
dua kali. - Keamanan Tambahan: Masukkan passphrase kuat.
4. Memverifikasi Kunci #
Apa: Memeriksa berkas kunci yang dihasilkan.
ls ~/.ssh
Hasil yang diharapkan: id_rsa
(privat) dan id_rsa.pub
(publik).
Catatan: Jaga id_rsa
tetap aman. Bagikan hanya id_rsa.pub
.
Potensi Error: Izin direktori salah. Gunakan chmod 700 ~/.ssh
.
Penyalinan Kunci Publik ke Server
1. Menyalin Kunci #
Apa: Menggunakan ssh-copy-id
untuk menyalin kunci publik.
ssh-copy-id your_username@server_ip
Ganti your_username
dan server_ip
sesuai kebutuhan.
2. Memasukkan Kata Sandi #
Apa: Masukkan kata sandi server sekali.
3. Memverifikasi Akses #
Apa: Menguji login dengan kunci.
ssh your_username@server_ip
4. Kunci untuk Pengguna Lain #
Apa: Menambahkan kunci publik pengguna lain secara manual.
sudo nano ~other_user/.ssh/authorized_keys
sudo chown other_user:other_user ~other_user/.ssh -R
sudo chmod 700 ~other_user/.ssh
sudo chmod 600 ~other_user/.ssh/authorized_keys
Potensi Error: Login kata sandi dinonaktifkan. Pastikan PasswordAuthentication yes
sementara.
Konfigurasi Server SSH
1. Mencadangkan Konfigurasi #
Apa: Membuat cadangan sshd_config
.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
2. Mengedit Konfigurasi #
Apa: Mengubah sshd_config
untuk autentikasi kunci.
sudo nano /etc/ssh/sshd_config
Tambahkan:
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
AllowUsers your_username
3. Memulai Ulang Layanan #
Apa: Menerapkan perubahan.
sudo systemctl restart sshd
4. Memverifikasi Konfigurasi #
Apa: Menguji login kunci dan memastikan login kata sandi gagal.
ssh your_username@server_ip
ssh -o PubkeyAuthentication=no your_username@server_ip
Catatan: Uji di sesi baru untuk menghindari kehilangan akses.
Pengaturan Firewall dan SELinux
1. Membuka Port SSH #
Apa: Mengizinkan port 22 di firewalld
.
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
2. Memverifikasi Firewall #
Apa: Memeriksa layanan aktif.
sudo firewall-cmd --list-services
3. Menguji SELinux #
Apa: Mengatur mode permisif jika login gagal.
sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
Potensi Error: Zona firewall salah. Periksa dengan sudo firewall-cmd --get-active-zones
.
Pemecahan Masalah
1. Memeriksa Log #
Apa: Melihat log untuk error.
sudo journalctl -u sshd
2. Memeriksa Izin #
Apa: Memastikan izin berkas benar.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
3. Mode Verbose #
Apa: Menguji koneksi dengan detail.
ssh -v your_username@server_ip
Catatan: Pulihkan sshd_config
dari cadangan jika gagal.