15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
30.10.2024
3 +1

Cara Menginstal dan Mengkonfigurasi SSH Server di Debian (Panduan Lengkap)

SSH (Secure Shell) adalah salah satu protokol paling fundamental dalam administrasi server modern. Protokol ini menyediakan saluran terenkripsi dan terautentikasi untuk mengakses dan mengelola server Linux dari jarak jauh — menjadikannya alat yang sangat diperlukan bagi administrator sistem, pengembang, dan siapa pun yang menjalankan mesin jarak jauh. Baik Anda mengelola lingkungan VPS Hosting maupun Dedicated Server, menginstal dan memperkuat server SSH Anda dengan benar adalah salah satu tugas pertama yang harus Anda selesaikan.

Dalam panduan komprehensif ini, Anda akan mempelajari cara menginstal OpenSSH di Debian, mengonfigurasinya dengan aman, menyiapkan autentikasi berbasis kunci, dan menerapkan langkah-langkah penguatan praktik terbaik untuk melindungi server Anda dari akses yang tidak sah.

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  • Server berbasis Debian (Debian 10 Buster, 11 Bullseye, atau 12 Bookworm)
  • Pengguna non-root dengan hak istimewa sudo, atau akses root langsung untuk pengaturan awal
  • Keakraban dasar dengan baris perintah Linux
  • Akses jaringan ke server Anda

Langkah 1: Perbarui Sistem Anda dan Instal OpenSSH Server

Sebelum menginstal perangkat lunak apa pun, praktik yang baik adalah memperbarui indeks paket Anda dan meningkatkan paket yang ada ke versi terbaru. Ini memastikan kompatibilitas dan mengurangi kerentanan keamanan.

sudo apt update && sudo apt upgrade -y

Sekarang instal paket server OpenSSH:

sudo apt install openssh-server -y

Manajer paket akan mengunduh dan menginstal OpenSSH beserta dependensi yang diperlukan. Setelah instalasi selesai, layanan SSH biasanya dimulai secara otomatis.

Verifikasi Layanan SSH Sedang Berjalan

Konfirmasi bahwa layanan ssh aktif dan diaktifkan:

sudo systemctl status ssh

Anda akan melihat output yang mirip dengan:

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since ...

Jika layanan tidak berjalan, mulai secara manual dan aktifkan agar diluncurkan saat boot:

sudo systemctl start ssh
sudo systemctl enable ssh

Langkah 2: Pahami File Konfigurasi SSH

File konfigurasi daemon SSH utama terletak di:

/etc/ssh/sshd_config

File ini mengontrol hampir setiap aspek cara server SSH Anda berperilaku — mulai dari port mana yang didengarkan, hingga metode autentikasi mana yang diizinkan. Sebelum membuat perubahan apa pun, buat cadangan file asli:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Sekarang buka file dengan editor teks:

sudo nano /etc/ssh/sshd_config

Bagian-bagian di bawah ini memandu Anda melalui opsi konfigurasi yang paling penting.

Langkah 3: Perkuat Konfigurasi SSH Anda

3.1 Ubah Port SSH Default (Direkomendasikan)

Secara default, SSH mendengarkan pada port 22. Ini sudah diketahui secara luas, dan bot otomatis terus-menerus memindai internet untuk koneksi port 22 yang terbuka guna mencoba serangan brute-force. Mengubah port ke nilai non-standar secara signifikan mengurangi gangguan ini.

Temukan baris berikut (mungkin dikomentari dengan #):

#Port 22

Hapus komentar dan ubah nilainya:

Port 2222

> Catatan: Pilih nomor port antara 1024 dan 65535 yang belum digunakan oleh layanan lain. Alternatif umum termasuk 2222, 2200, atau 4422. Ingat untuk memperbarui aturan firewall Anda sesuai (lihat Langkah 5).

3.2 Nonaktifkan Login Root (Sangat Direkomendasikan)

Mengizinkan login root langsung melalui SSH adalah risiko keamanan yang signifikan. Jika penyerang menebak atau memaksa kata sandi root, mereka mendapatkan kendali penuh atas server Anda. Nonaktifkan dengan menemukan dan memodifikasi direktif ini:

PermitRootLogin no

Jika Anda perlu melakukan tugas administratif, masuk sebagai pengguna biasa dan eskalasi hak istimewa menggunakan sudo.

3.3 Batasi Akses SSH ke Pengguna Tertentu

Anda dapat memasukkan akun pengguna tertentu ke daftar putih yang diizinkan untuk masuk melalui SSH. Ini mencegah akun yang tidak sah atau akun sistem digunakan sebagai titik masuk:

AllowUsers your_username deploy_user

Atau, Anda dapat membatasi akses berdasarkan grup:

AllowGroups sshusers

3.4 Nonaktifkan Autentikasi Kata Sandi (Setelah Menyiapkan Autentikasi Kunci)

Setelah autentikasi kunci SSH berfungsi (lihat Langkah 6), nonaktifkan login berbasis kata sandi sepenuhnya untuk menghilangkan vektor serangan brute-force:

PasswordAuthentication no

3.5 Direktif Penguatan Tambahan

Tambahkan atau modifikasi baris berikut untuk postur keamanan yang lebih kuat:

# Disable empty passwords
PermitEmptyPasswords no

# Limit authentication attempts per connection
MaxAuthTries 3

# Set idle session timeout (seconds)
ClientAliveInterval 300
ClientAliveCountMax 2

# Disable X11 forwarding if not needed
X11Forwarding no

# Use only SSH Protocol 2
Protocol 2

# Restrict to specific address family (IPv4 only example)
AddressFamily inet

Bagian relevan /etc/ssh/sshd_config akhir Anda seharusnya terlihat seperti ini:

Port 2222
PermitRootLogin no
MaxAuthTries 3
PasswordAuthentication no
PermitEmptyPasswords no
AllowUsers your_username
X11Forwarding no
ClientAliveInterval 300
ClientAliveCountMax 2

Langkah 4: Validasi Konfigurasi dan Mulai Ulang SSH

Sebelum memulai ulang layanan, selalu uji file konfigurasi Anda untuk kesalahan sintaks. sshd_config yang salah dikonfigurasi dapat mengunci Anda dari server:

sudo sshd -t

Jika tidak ada kesalahan yang dikembalikan, terapkan perubahan dengan memulai ulang daemon SSH:

sudo systemctl restart ssh

Verifikasi layanan dimulai ulang dengan bersih:

sudo systemctl status ssh

> ⚠️ Penting: Sebelum menutup sesi SSH Anda saat ini, buka jendela terminal kedua dan uji konfigurasi baru. Dengan cara ini, jika ada yang salah, Anda masih memiliki sesi aktif untuk memperbaiki masalah.

Langkah 5: Perbarui Aturan Firewall

Jika Anda menggunakan UFW (Uncomplicated Firewall) — alat firewall default di Debian — Anda perlu mengizinkan lalu lintas pada port SSH baru Anda.

Jika Anda mengubah port ke 2222:

sudo ufw allow 2222/tcp
sudo ufw reload

Jika Anda mempertahankan port default 22:

sudo ufw allow ssh
sudo ufw reload

Periksa status firewall saat ini:

sudo ufw status verbose

Jika UFW belum diaktifkan, aktifkan (pastikan port SSH Anda diizinkan terlebih dahulu untuk menghindari penguncian):

sudo ufw enable

Langkah 6: Siapkan Autentikasi Berbasis Kunci SSH

Autentikasi kunci SSH jauh lebih aman daripada login berbasis kata sandi. Ini menggunakan kriptografi asimetris — pasangan kunci yang terdiri dari kunci privat (disimpan rahasia di mesin klien Anda) dan kunci publik (disimpan di server). Bahkan jika penyerang mengetahui nama pengguna Anda, mereka tidak dapat masuk tanpa kunci privat.

6.1 Buat Pasangan Kunci SSH di Mesin Klien Anda

Jalankan perintah berikut di mesin lokal Anda (bukan server):

ssh-keygen -t ed25519 -C "your_email@example.com"

> Mengapa Ed25519? Ed25519 adalah algoritma kurva eliptik modern yang menawarkan keamanan dan kinerja lebih baik dibandingkan algoritma RSA yang lebih lama. Jika sistem Anda tidak mendukungnya, gunakan RSA dengan kunci 4096-bit: ssh-keygen -t rsa -b 4096

Saat diminta, pilih lokasi penyimpanan (default adalah ~/.ssh/id_ed25519) dan tetapkan frasa sandi yang kuat untuk lapisan perlindungan tambahan.

6.2 Salin Kunci Publik ke Server Anda

Gunakan ssh-copy-id untuk mentransfer kunci publik Anda ke server dengan aman:

ssh-copy-id -p 2222 username@your_server_ip

Perintah ini menambahkan kunci publik Anda ke ~/.ssh/authorized_keys di server dengan izin yang benar.

Jika ssh-copy-id tidak tersedia, Anda dapat melakukannya secara manual:

# On your local machine, display your public key:
cat ~/.ssh/id_ed25519.pub

# On the server, add it to authorized_keys:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "your_public_key_here" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

6.3 Uji Login Berbasis Kunci

Dari mesin klien Anda, hubungkan ke server:

ssh -p 2222 username@your_server_ip

Anda akan diminta memasukkan frasa sandi kunci Anda (bukan kata sandi akun Anda). Setelah dikonfirmasi, Anda masuk dengan aman.

6.4 Nonaktifkan Autentikasi Kata Sandi

Sekarang autentikasi berbasis kunci berfungsi, kembali ke /etc/ssh/sshd_config dan pastikan:

PasswordAuthentication no

Mulai ulang SSH untuk menerapkan:

sudo systemctl restart ssh

Langkah 7: Pantau dan Pertahankan Keamanan SSH

Menginstal dan mengonfigurasi SSH bukanlah tugas satu kali. Pemantauan berkelanjutan sangat penting untuk mendeteksi upaya intrusi dan mempertahankan lingkungan yang aman.

Periksa Upaya Login yang Gagal

sudo journalctl -u ssh | grep "Failed password"

Atau menggunakan lastb untuk melihat upaya login yang gagal:

sudo lastb | head -20

Instal Fail2Ban untuk Memblokir Serangan Brute-Force

Fail2Ban memantau file log dan secara otomatis memblokir alamat IP yang menunjukkan perilaku berbahaya (seperti upaya login yang gagal berulang kali):

sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Buat konfigurasi jail lokal untuk SSH:

sudo nano /etc/fail2ban/jail.local

Tambahkan yang berikut:

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600

Mulai ulang Fail2Ban untuk menerapkan:

sudo systemctl restart fail2ban

Perbarui OpenSSH Secara Rutin

Perbarui OpenSSH secara rutin untuk menambal kerentanan yang diketahui:

sudo apt update && sudo apt upgrade openssh-server -y

Menghubungkan ke Server SSH Anda: Referensi Cepat

SkenarioPerintah
Port default (22)ssh username@your_server_ip
Port kustomssh -p 2222 username@your_server_ip
File identitas tertentussh -i ~/.ssh/id_ed25519 username@your_server_ip
Output verbose (debug)ssh -v username@your_server_ip
Salin file melalui SSHscp -P 2222 file.txt username@your_server_ip:/path/

Memilih Lingkungan Hosting yang Tepat untuk SSH

Langkah-langkah dalam panduan ini berlaku untuk server berbasis Debian mana pun, tetapi jenis hosting yang Anda gunakan memengaruhi cara Anda mengakses dan mengelola lingkungan Anda:

  • VPS Hosting: VPS dengan cPanel atau Panel Kontrol VPS lainnya memberi Anda akses SSH root penuh bersama antarmuka manajemen grafis — ideal untuk pengguna yang menginginkan kekuatan dan kenyamanan sekaligus.
  • Dedicated Servers: Dengan Dedicated Server, Anda memiliki kendali penuh di tingkat perangkat keras, membuat konfigurasi SSH semakin kritis karena Anda sepenuhnya bertanggung jawab atas keamanan mesin.
  • Shared Hosting: Paket Shared Web Hosting biasanya menyediakan akses SSH yang terbatas atau tidak sama sekali, karena lingkungan dibagi di antara banyak pengguna. Jika SSH adalah persyaratan, meningkatkan ke VPS adalah jalur yang direkomendasikan.

Kesimpulan

Menginstal dan mengonfigurasi server SSH di Debian adalah keterampilan dasar bagi setiap administrator sistem atau pengembang yang bekerja dengan server Linux jarak jauh. Dengan mengikuti panduan ini, Anda telah:

  • ✅ Menginstal OpenSSH Server di Debian
  • ✅ Memperkuat konfigurasi SSH dengan mengubah port default, menonaktifkan login root, dan membatasi akses pengguna
  • ✅ Menyiapkan autentikasi berbasis kunci SSH untuk login aman tanpa kata sandi
  • ✅ Mengonfigurasi aturan firewall untuk melindungi port SSH Anda
  • ✅ Mengimplementasikan Fail2Ban untuk bertahan dari serangan brute-force
  • ✅ Menetapkan rutinitas pemantauan dan pemeliharaan

Server SSH yang diamankan dengan benar secara dramatis mengurangi permukaan serangan Anda dan memberi Anda gateway terenkripsi yang andal untuk mengelola infrastruktur Anda dari jarak jauh. Baik Anda baru memulai dengan server pertama Anda atau memperkuat lingkungan produksi, praktik-praktik ini adalah blok bangunan penting dari sistem Linux yang aman.

15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai