15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
29.10.2024

Cara Menginstal dan Mengonfigurasi SSH di Linux: Panduan Keamanan Lengkap untuk 2025

SSH adalah titik akses paling kritis pada server Anda. Konfigurasi SSH yang salah dapat dibobol dalam waktu kurang dari lima menit oleh bot otomatis yang memindai internet. Baik Anda mengelola lingkungan VPS Hosting, mesin bare-metal, atau instans cloud, mengamankan SSH dengan benar sejak hari pertama adalah hal yang tidak bisa ditawar.

Dalam panduan ini, Anda akan mempelajari cara menginstal OpenSSH, mengonfigurasinya dengan aman, menerapkan autentikasi berbasis kunci, dan menerapkan teknik pengerasan tingkat produksi — semuanya pada server Linux di tahun 2025.

Apa Itu SSH dan Mengapa Penting?

SSH (Secure Shell) adalah protokol jaringan kriptografi yang memungkinkan pengguna terhubung secara aman ke sistem jarak jauh melalui jaringan yang tidak aman seperti internet. Semua data yang dikirimkan antara klien dan server dienkripsi sepenuhnya, menjadikannya standar industri untuk manajemen server jarak jauh.

Secara default, SSH beroperasi pada port 22 dan mendukung:

  • Login jarak jauh ke server dan mesin virtual
  • Transfer file yang aman melalui SCP dan SFTP
  • Eksekusi perintah jarak jauh dan otomatisasi berbasis skrip
  • Penerusan port dan tunneling untuk perutean lalu lintas yang aman
  • Penerusan X11 untuk akses aplikasi grafis

SSH adalah antarmuka administratif utama Anda. Perlakukan sesuai dengan itu.

Langkah 1: Menginstal Server OpenSSH

Sebagian besar distribusi Linux modern sudah dilengkapi dengan OpenSSH yang telah terinstal. Jika belum ada, instal menggunakan manajer paket yang sesuai untuk distribusi Anda.

Ubuntu / Debian

sudo apt update
sudo apt install openssh-server -y

CentOS / RHEL / AlmaLinux / Rocky Linux

sudo yum install openssh-server -y

Fedora

sudo dnf install openssh-server -y

Arch Linux

sudo pacman -S openssh

Setelah instalasi, baik server OpenSSH (sshd) maupun klien OpenSSH tersedia, memungkinkan Anda menerima koneksi masuk dan terhubung ke server jarak jauh lainnya.

Langkah 2: Memulai dan Mengaktifkan Layanan SSH

Setelah terinstal, Anda perlu memulai daemon SSH (sshd) dan mengonfigurasinya agar berjalan otomatis saat sistem boot.

Mulai Layanan SSH

sudo systemctl start ssh

Aktifkan SSH untuk Berjalan Saat Boot

sudo systemctl enable ssh

Verifikasi Layanan Sedang Berjalan

sudo systemctl status ssh

Output yang sehat akan menampilkan active (running) dalam warna hijau. Jika Anda melihat kesalahan, periksa log sistem Anda dengan journalctl -xe untuk detail diagnostik.

Langkah 3: Memahami File Konfigurasi SSH

Perilaku SSH dikendalikan oleh satu file konfigurasi utama:

/etc/ssh/sshd_config

File ini mengontrol segalanya — port yang didengarkan, metode autentikasi, pengguna yang diizinkan, pembatasan login, dan lainnya. Selalu buat cadangan sebelum melakukan perubahan:

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

Buka file dengan editor teks pilihan Anda:

sudo nano /etc/ssh/sshd_config

Setelah melakukan perubahan apa pun, selalu validasi sintaks konfigurasi sebelum memulai ulang layanan untuk menghindari terkunci dari server:

sudo sshd -t

Jika tidak ada kesalahan yang dikembalikan, terapkan perubahan:

sudo systemctl restart ssh

Langkah 4: Perubahan Konfigurasi SSH yang Penting

4.1 Ubah Port SSH Default

Port 22 adalah port pertama yang menjadi target pemindai otomatis dan bot brute-force. Mengubahnya ke port non-standar secara dramatis mengurangi kebisingan dalam log Anda dan menurunkan paparan terhadap serangan oportunistik.

Temukan baris ini di sshd_config:

#Port 22

Hapus tanda komentar dan tetapkan port kustom (pilih angka antara 1024 dan 65535 yang belum digunakan):

Port 2222

Simpan file, validasi, dan mulai ulang SSH:

sudo sshd -t && sudo systemctl restart ssh

> Penting: Perbarui aturan firewall Anda segera setelah mengubah port (lihat Langkah 6). Gagal melakukannya akan mengunci Anda dari server.

4.2 Nonaktifkan Login Root melalui SSH

Mengizinkan login root langsung melalui SSH adalah salah satu kesalahan konfigurasi yang paling umum dan berbahaya. Jika penyerang menebak atau memaksa kata sandi root, mereka memiliki kendali penuh dan tidak terbatas atas sistem Anda.

Temukan direktif ini:

PermitRootLogin yes

Ubah menjadi:

PermitRootLogin no

Pengguna harus login dengan akun standar dan meningkatkan hak istimewa menggunakan sudo bila diperlukan. Ini menciptakan lapisan audit yang penting — setiap tindakan istimewa dicatat terhadap akun pengguna yang bernama.

4.3 Terapkan Autentikasi Berbasis Kunci dan Nonaktifkan Kata Sandi

Autentikasi berbasis kata sandi secara inheren rentan terhadap serangan brute-force. Pasangan kunci SSH — kombinasi kunci publik/privat yang terhubung secara matematis — jauh lebih aman secara eksponensial.

Temukan dan tetapkan direktif berikut:

PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no

> Peringatan: Hanya nonaktifkan autentikasi kata sandi setelah Anda berhasil menguji login berbasis kunci. Menonaktifkan kata sandi tanpa kunci yang berfungsi akan mengunci Anda secara permanen.

4.4 Direktif Pengerasan Tambahan

Tambahkan atau modifikasi pengaturan ini di sshd_config untuk konfigurasi produksi yang diperkuat:

# Restrict login to specific users (replace 'youruser' with actual usernames)
AllowUsers youruser

# Disconnect idle sessions after 5 minutes
ClientAliveInterval 300
ClientAliveCountMax 2

# Limit authentication attempts per connection
MaxAuthTries 3

# Disable empty passwords
PermitEmptyPasswords no

# Disable X11 forwarding if not needed
X11Forwarding no

# Use only modern, secure protocol version
Protocol 2

# Restrict SSH to specific network interface (optional, replace with your IP)
ListenAddress 0.0.0.0

Langkah 5: Membuat dan Menerapkan Pasangan Kunci SSH

Autentikasi kunci SSH menggantikan kata sandi dengan bukti identitas kriptografi. Berikut cara mengaturnya dengan benar.

Langkah 5.1: Buat Pasangan Kunci di Mesin Lokal Anda

Jalankan perintah ini di workstation lokal Anda (bukan server):

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

> Mengapa Ed25519? Ed25519 adalah algoritma kurva eliptik modern yang lebih cepat, lebih aman, dan menghasilkan kunci yang lebih pendek dibandingkan algoritma RSA yang lebih lama. Ini adalah pilihan yang direkomendasikan di tahun 2025.

Jika sistem atau alat Anda memerlukan RSA karena alasan kompatibilitas, gunakan kunci 4096-bit:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Anda akan diminta untuk:

  1. Memilih jalur file (tekan Enter untuk menerima default ~/.ssh/id_ed25519)
  2. Menetapkan frasa sandi opsional (sangat disarankan — ini mengenkripsi kunci privat Anda saat tidak digunakan)

Ini menghasilkan dua file:

    ~/.ssh/id_ed25519 — Kunci privat Anda. Jangan pernah membagikan ini. Jangan pernah menyalinnya ke server.
    ~/.ssh/id_ed25519.pub — Kunci publik Anda. Inilah yang diinstal di server.
    
    Langkah 5.2: Salin Kunci Publik ke Server
    Gunakan ssh-copy-id untuk mentransfer kunci publik Anda ke server jarak jauh dengan aman:
    ssh-copy-id -p 2222 username@your_server_ip
    Ganti username dengan nama akun server Anda dan your_server_ip dengan alamat IP yang sebenarnya.
    Perintah ini menambahkan kunci publik Anda ke ~/.ssh/authorized_keys di server dengan izin yang benar secara otomatis.
    Metode manual (jika ssh-copy-id tidak tersedia):
    cat ~/.ssh/id_ed25519.pub | ssh username@your_server_ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
    Langkah 5.3: Uji Login Berbasis Kunci
    Sebelum menonaktifkan autentikasi kata sandi, verifikasi bahwa login berbasis kunci berfungsi:
    ssh -p 2222 username@your_server_ip
    Jika Anda berhasil terhubung tanpa diminta kata sandi (atau hanya untuk frasa sandi kunci Anda), autentikasi berbasis kunci berfungsi dengan benar. Sekarang Anda dapat menonaktifkan autentikasi kata sandi dengan aman di sshd_config.
    Langkah 6: Mengonfigurasi Firewall untuk SSH
    Firewall adalah lini pertahanan pertama Anda. Selalu konfigurasikan untuk hanya mengizinkan port SSH yang Anda gunakan.
    Menggunakan UFW (Ubuntu / Debian)
    # Allow your custom SSH port
    sudo ufw allow 2222/tcp
    
    # Enable the firewall
    sudo ufw enable
    
    # Verify the rules
    sudo ufw status verbose
    Menggunakan firewalld (CentOS / RHEL / Fedora)
    # Add the custom SSH port
    sudo firewall-cmd --permanent --add-port=2222/tcp
    
    # Remove the default port 22 (optional, after confirming new port works)
    sudo firewall-cmd --permanent --remove-service=ssh
    
    # Reload firewall rules
    sudo firewall-cmd --reload
    Batasi Akses SSH berdasarkan Alamat IP
    Untuk keamanan maksimal, batasi akses SSH hanya ke alamat IP yang dikenal dan tepercaya:
    # UFW example: allow SSH only from a specific IP
    sudo ufw allow from 203.0.113.10 to any port 2222 proto tcp
    Ini sangat efektif pada Dedicated Servers di mana Anda mengontrol semua akses administratif dari kantor tetap atau rentang IP VPN.
    Langkah 7: Langkah-Langkah Keamanan Lanjutan
    7.1 Instal dan Konfigurasikan Fail2Ban
    Fail2Ban memantau file log SSH dan secara otomatis memblokir alamat IP yang menunjukkan tanda-tanda aktivitas brute-force.
    # Install Fail2Ban
    sudo apt install fail2ban -y   # Ubuntu/Debian
    sudo yum install fail2ban -y   # CentOS/RHEL
    
    # Create a local configuration file
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    Edit /etc/fail2ban/jail.local dan konfigurasikan jail SSH:
    [sshd]
    enabled = true
    port    = 2222
    filter  = sshd
    logpath = /var/log/auth.log
    maxretry = 3
    bantime  = 3600
    findtime = 600
    Mulai dan aktifkan Fail2Ban:
    sudo systemctl start fail2ban
    sudo systemctl enable fail2ban
    7.2 Gunakan File Konfigurasi SSH untuk Manajemen Sisi Klien
    Di mesin lokal Anda, buat atau edit ~/.ssh/config untuk menyederhanakan koneksi dan menerapkan pengaturan keamanan:
    Host myserver
        HostName your_server_ip
        User youruser
        Port 2222
        IdentityFile ~/.ssh/id_ed25519
        ServerAliveInterval 60
        ServerAliveCountMax 3
    Dengan konfigurasi ini, Anda dapat terhubung cukup dengan mengetik:
    ssh myserver
    7.3 Autentikasi Dua Faktor (2FA) untuk SSH
    Untuk lingkungan yang memerlukan tingkat keamanan akses tertinggi — seperti basis data produksi, sistem keuangan, atau infrastruktur yang diatur oleh kepatuhan — pertimbangkan untuk menambahkan autentikasi dua faktor berbasis TOTP menggunakan Google Authenticator atau Authy bersama kunci SSH.
    sudo apt install libpam-google-authenticator -y
    google-authenticator
    Kemudian konfigurasikan PAM dan sshd_config untuk memerlukan kunci dan kata sandi sekali pakai. Ini menciptakan alur autentikasi multi-faktor yang sesungguhnya.
    Langkah 8: Pengujian dan Pemecahan Masalah SSH
    Setelah menyelesaikan konfigurasi Anda, verifikasi secara sistematis bahwa semuanya berfungsi seperti yang diharapkan.
    Uji Koneksi
    ssh -p 2222 -v username@your_server_ip
    Flag -v mengaktifkan mode verbose, mencetak informasi debugging terperinci tentang setiap tahap koneksi — sangat berharga untuk mendiagnosis kegagalan autentikasi.
    Masalah Umum dan Solusinya
    
    
    
    
    Masalah
    Kemungkinan Penyebab
    Solusi
    
    
    
    
    Connection refused
    SSH tidak berjalan atau port salah
    Periksa systemctl status ssh dan aturan firewall
    
    
    Permission denied (publickey)
    Kunci tidak ada di authorized_keys atau izin salah
    Verifikasi ~/.ssh/authorized_keys ada dengan chmod 600
    
    
    Host key verification failed
    Sidik jari server berubah
    Hapus entri lama dari ~/.ssh/known_hosts
    
    
    Connection timed out
    Firewall memblokir port
    Periksa aturan UFW/firewalld dan grup keamanan cloud
    
    
    Terkunci setelah perubahan konfigurasi
    Kesalahan konfigurasi di sshd_config
    Gunakan akses konsol/KVM untuk mengembalikan perubahan
    
    
    
    
    Perintah Diagnostik
    # Check SSH service status
    sudo systemctl status ssh
    
    # View real-time SSH logs
    sudo journalctl -u ssh -f
    
    # Check which port SSH is listening on
    sudo ss -tlnp | grep sshd
    
    # Test configuration file syntax
    sudo sshd -t
    Referensi sshd_config yang Diperkuat Secara Lengkap
    Berikut adalah sshd_config yang siap produksi yang menggabungkan semua rekomendasi keamanan dari panduan ini:
    # Network
    Port 2222
    ListenAddress 0.0.0.0
    Protocol 2
    
    # Authentication
    PermitRootLogin no
    PubkeyAuthentication yes
    PasswordAuthentication no
    PermitEmptyPasswords no
    ChallengeResponseAuthentication no
    MaxAuthTries 3
    LoginGraceTime 30
    
    # Session Management
    ClientAliveInterval 300
    ClientAliveCountMax 2
    MaxSessions 5
    
    # Access Control
    AllowUsers youruser
    
    # Features (disable what you don't need)
    X11Forwarding no
    AllowTcpForwarding no
    GatewayPorts no
    PermitUserEnvironment no
    
    # Logging
    SyslogFacility AUTH
    LogLevel VERBOSE
    Mengapa Infrastruktur Hosting Anda Penting untuk Keamanan SSH
    Keamanan konfigurasi SSH Anda tidak berdiri sendiri — ini sangat bergantung pada infrastruktur yang mendasarinya. Pengaturan SSH yang diperkuat dengan benar paling efektif ketika diterapkan pada server yang sudah menyediakan:
    
    Perlindungan DDoS untuk menyerap serangan volumetrik sebelum mencapai port SSH Anda
    Penyimpanan NVMe untuk penulisan log yang cepat dan waktu respons Fail2Ban yang singkat
    Port jaringan 1 Gbps untuk memastikan stabilitas koneksi di bawah beban
    Akses KVM/konsol sebagai metode pemulihan out-of-band jika Anda tidak sengaja mengunci diri
    
    Paket VPS Hosting AlexHost mencakup semua hal di atas, dengan akses root penuh dan dukungan untuk konfigurasi firewall kustom — menjadikannya ideal untuk menerapkan pengaturan SSH yang diperkuat seperti yang dijelaskan dalam panduan ini.
    Jika Anda memerlukan panel kontrol untuk mengelola server Anda bersama SSH, jelajahi Panel Kontrol VPS untuk pilihan termasuk cPanel, Plesk, dan DirectAdmin. Untuk tim yang mengelola beberapa properti web, Shared Web Hosting menyediakan lingkungan terkelola di mana pengerasan SSH ditangani di tingkat infrastruktur.
    Dan jika Anda menjalankan layanan web yang diamankan SSL bersama server yang diperkuat SSH, memasangkan pengaturan Anda dengan solusi SSL Certificates yang tepercaya memastikan enkripsi end-to-end di semua layanan publik Anda.
    Daftar Periksa Keamanan SSH
    Gunakan daftar periksa ini sebelum menganggap konfigurasi SSH Anda siap produksi:
    
    [ ] Server OpenSSH terinstal dan berjalan
    [ ] Port default 22 diubah ke port kustom
    [ ] Login root dinonaktifkan (PermitRootLogin no)
    [ ] Pasangan kunci Ed25519 atau RSA-4096 dibuat
    [ ] Kunci publik diterapkan ke authorized_keys di server
    [ ] Login berbasis kunci berhasil diuji
    [ ] Autentikasi kata sandi dinonaktifkan
    [ ] Firewall dikonfigurasi untuk hanya mengizinkan port SSH baru
    [ ] Fail2Ban terinstal dan dikonfigurasi
    [ ] MaxAuthTries diatur ke 3 atau lebih sedikit
    [ ] ClientAliveInterval dikonfigurasi untuk mengakhiri sesi yang tidak aktif
    [ ] Sintaks sshd_config divalidasi dengan sudo sshd -t
  • [ ] Akses konsol out-of-band dikonfirmasi (KVM/VNC)

Kesimpulan

Menginstal dan mengonfigurasi SSH dengan benar adalah salah satu keterampilan paling mendasar dalam administrasi sistem Linux. Instalasi SSH default adalah sebuah kewajiban; konfigurasi SSH yang diperkuat adalah sebuah aset. Dengan mengikuti panduan ini, Anda telah:

  1. Menginstal dan memulai server OpenSSH
  2. Mengubah port default dan menonaktifkan login root
  3. Menerapkan autentikasi berbasis kunci yang kuat secara kriptografi
  4. Mengonfigurasi aturan firewall untuk membatasi akses
  5. Menerapkan Fail2Ban untuk memblokir upaya brute-force
  6. Menetapkan metodologi pemecahan masalah yang lengkap

SSH, ketika dikonfigurasi dengan benar, menjadi gateway yang kuat, andal, dan aman untuk manajemen jarak jauh, pipeline otomatisasi, dan komunikasi terenkripsi antar sistem. Dikombinasikan dengan infrastruktur hosting yang kuat — seperti Dedicated Servers AlexHost dengan mitigasi DDoS tingkat perangkat keras — Anda memiliki fondasi yang benar-benar sulit untuk dikompromikan.

Tinjau kembali konfigurasi SSH Anda secara berkala. Rotasi kunci Anda setiap tahun. Pantau log Anda. Keamanan bukan tugas satu kali — ini adalah praktik yang berkelanjutan.

15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai