- 1 1. Pendahuluan
- 2 2. Konfigurasi Dasar SSH
- 3 Kesimpulan
- 4 3. Memperkuat Keamanan SSH
- 5 Kesimpulan
- 6 4. Konfigurasi SSH Lanjutan
- 7 Kesimpulan
- 8 5. Pemecahan Masalah SSH
- 9 Kesimpulan
- 10 6. FAQ (Pertanyaan yang Sering Diajukan)
- 10.1 6.1 Cara Memperbaiki Masalah Timeout SSH?
- 10.2 6.2 Apa yang Harus Dilakukan Jika Anda Lupa Kata Sandi SSH Anda?
- 10.3 6.3 Cara Menggunakan SSH di Windows?
- 10.4 6.4 Cara Mengonfigurasi SSH di Ubuntu WSL?
- 10.5 6.5 Praktik Keamanan Tambahan Terbaik
- 10.6 6.6 Cara Memantau Log SSH secara Real Time?
- 10.7 6.7 Tips Menggunakan SSH Lebih Praktis
- 11 Kesimpulan
1. Pendahuluan
Mengonfigurasi SSH di Ubuntu penting untuk mengelola server jarak jauh. SSH (Secure Shell) adalah protokol yang menyediakan komunikasi terenkripsi yang aman, memungkinkan pengguna mengakses server secara remote, menjalankan perintah, dan mentransfer file.
Artikel ini menjelaskan cara mengonfigurasi SSH di Ubuntu, mulai dari langkah instalasi dasar hingga langkah keamanan lanjutan.
1.1 Mengapa Mengonfigurasi SSH di Ubuntu?
1.1.1 Apa Itu SSH?
SSH (Secure Shell) adalah protokol yang memungkinkan komunikasi aman melalui jaringan. Umumnya digunakan untuk masuk ke server jarak jauh, mentransfer file, dan tunneling (port forwarding). Tidak seperti Telnet atau FTP tradisional, SSH mengenkripsi semua komunikasi, memberikan keamanan yang kuat.
1.1.2 Kapan SSH Diperlukan di Ubuntu
Skenario umum di mana SSH digunakan untuk mengelola Ubuntu secara remote meliputi:
- Administrasi server cloud : Server Linux di AWS, GCP, Vultr, dan lainnya biasanya diakses melalui SSH.
- Operasi jarak jauh di lingkungan LAN : Mengakses server internal atau mesin pengembangan secara remote.
- Mengelola perangkat IoT : Mengendalikan sistem tertanam seperti Raspberry Pi secara remote.
Secara default, server SSH dinonaktifkan di Ubuntu, sehingga harus diinstal dan dikonfigurasi secara manual untuk mengaktifkan akses SSH.
2. Konfigurasi Dasar SSH
Untuk menggunakan SSH di Ubuntu, Anda harus menginstal server SSH (OpenSSH) dan mengkonfigurasinya dengan benar. Bagian ini menjelaskan cara menginstal SSH, menyesuaikan pengaturan dasar, mengkonfigurasi firewall, dan terhubung ke server.
2.1 Menginstal dan Memulai OpenSSH
2.1.1 Apa Itu OpenSSH?
OpenSSH (Open Secure Shell) adalah implementasi sumber terbuka dari protokol SSH. Ia mendukung koneksi jarak jauh, transfer file aman (SCP dan SFTP), serta port forwarding.
2.1.2 Menginstal OpenSSH
Ubuntu tidak menyertakan server SSH secara default, jadi instal dengan perintah di bawah ini:
sudo apt update && sudo apt install -y openssh-server
Perintah ini memperbarui daftar paket dan menginstal server OpenSSH.
2.1.3 Memulai SSH dan Mengaktifkan Auto-Start
Setelah instalasi, mulai server SSH dan aktifkan startup otomatis:
sudo systemctl enable --now ssh
Opsi enable memastikan SSH mulai secara otomatis saat OS boot.
2.1.4 Memeriksa Status SSH
Verifikasi bahwa SSH sedang berjalan:
systemctl status ssh
Jika output menunjukkan active (running), SSH berfungsi normal:
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2025-02-28 12:00:00 UTC; 5min ago
Jika menunjukkan inactive (dead) atau failed, mulai SSH secara manual:
sudo systemctl start ssh
2.2 Mengkonfigurasi Firewall (UFW)
Ubuntu menyertakan firewall sederhana bernama ufw (Uncomplicated Firewall). Anda harus mengizinkan koneksi SSH melaluinya.
2.2.1 Memeriksa Status UFW
sudo ufw status
Contoh output (inactive):
Status: inactive
Contoh output (active):
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
2.2.2 Mengizinkan SSH
sudo ufw allow ssh
Atau secara eksplisit:
sudo ufw allow 22/tcp
2.2.3 Mengaktifkan UFW
sudo ufw enable
2.2.4 Memverifikasi Aturan UFW
sudo ufw status verbose
Contoh:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
2.3 Metode Koneksi SSH Dasar
Setelah SSH berjalan, sambungkan dari mesin klien.
2.3.1 Menyambung dari Linux/macOS
ssh username@server-ip-address
Contoh:
ssh user@192.168.1.100
Anda mungkin melihat peringatan keamanan pada koneksi pertama:
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?
Ketik yes untuk melanjutkan.
2.3.2 Menghubungkan dari Windows
Anda dapat menggunakan PowerShell atau PuTTY.
Menggunakan PowerShell (Windows 10+ sudah termasuk SSH):
ssh username@server-ip-address
Menggunakan PuTTY:
- Unduh PuTTY dari situs resmi
- Buka PuTTY dan masukkan IP server di
Host Name (or IP address) - Pilih
SSHsebagai tipe koneksi - Klik Open dan masuk
Kesimpulan
Bagian ini mencakup dasar-dasar menyiapkan SSH di Ubuntu:
- Cara menginstal dan memulai OpenSSH
- Cara mengizinkan koneksi SSH dengan UFW
- Cara menghubungkan dari Linux/macOS dan Windows
3. Memperkuat Keamanan SSH
SSH sangat kuat, tetapi membiarkannya dengan pengaturan default meningkatkan risiko keamanan. Penyerang sering melakukan upaya login brute-force atau pemindaian port. Memperkuat keamanan SSH sangat penting.
3.1 Menonaktifkan Login Root
Login root memberikan kontrol penuh atas sistem dan menjadi target utama bagi penyerang. Menonaktifkannya meningkatkan keamanan.
3.1.1 Langkah-langkah
- Edit file konfigurasi SSH:
sudo nano /etc/ssh/sshd_config
- Ubah baris menjadi:
PermitRootLogin no
- Restart SSH:
sudo systemctl restart ssh
- Konfirmasi perubahan:
sudo grep PermitRootLogin /etc/ssh/sshd_config
Jika outputnya PermitRootLogin no, pengaturan telah diterapkan.
3.2 Menonaktifkan Autentikasi Password dan Menggunakan Autentikasi Kunci
Autentikasi kunci publik lebih aman daripada password dan mengurangi risiko serangan brute-force.
3.2.1 Membuat Kunci SSH
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
Ini menghasilkan dua file:
- id_rsa (kunci pribadi) — simpan secara lokal, jangan pernah dibagikan
- id_rsa.pub (kunci publik) — unggah ke server
3.2.2 Mengunggah Kunci Publik
ssh-copy-id username@server-ip-address
3.2.3 Menonaktifkan Autentikasi Password
sudo nano /etc/ssh/sshd_config
Edit:
PasswordAuthentication no
Restart SSH:
sudo systemctl restart ssh
3.3 Mengizinkan Akses SSH Hanya untuk Pengguna Tertentu
Untuk meningkatkan keamanan SSH, Anda dapat membatasi akses sehingga hanya pengguna tertentu yang diizinkan masuk.
3.3.1 Langkah-langkah Konfigurasi
- Buka file konfigurasi SSH
/etc/ssh/sshd_config:sudo nano /etc/ssh/sshd_config
- Tambahkan pengguna yang diizinkan mengakses via SSH:
AllowUsers username1 username2
- Restart SSH untuk menerapkan pengaturan:
sudo systemctl restart ssh
3.4 Mengubah Port SSH
Karena port 22 sering menjadi target penyerang, mengubah port default dapat meningkatkan keamanan.
3.4.1 Langkah-langkah Konfigurasi
- Buka file konfigurasi SSH:
sudo nano /etc/ssh/sshd_config
- Ubah pengaturan port, misalnya:
Port 2200
- Restart SSH:
sudo systemctl restart ssh
3.4.2 Memperbarui Pengaturan Firewall
Jika Anda mengubah port, perbarui UFW:
sudo ufw allow 2200/tcp
Periksa aturan baru:
sudo ufw status
3.5 Mencegah Serangan Brute-Force dengan Fail2Ban
Fail2Ban mendeteksi upaya login yang gagal dan memblokir IP penyerang untuk jangka waktu tertentu.
3.5.1 Instal Fail2Ban
sudo apt install fail2ban -y
3.5.2 Buat File Konfigurasi
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Buka file:
sudo nano /etc/fail2ban/jail.local
Ubah pengaturan:
[sshd]
enabled = true
port = 2200
maxretry = 3
findtime = 600
bantime = 3600
3.5.3 Restart Fail2Ban
sudo systemctl restart fail2ban
3.5.4 Periksa Daftar Ban
sudo fail2ban-client status sshd
Kesimpulan
Bagian ini menjelaskan metode untuk meningkatkan keamanan SSH:
- Nonaktifkan login root
- Nonaktifkan otentikasi password dan aktifkan otentikasi kunci
- Batasi akses SSH hanya untuk pengguna tertentu
- Ubah port SSH
- Gunakan Fail2Ban untuk memblokir percobaan tidak sah
Menerapkan pengaturan ini membantu menciptakan lingkungan SSH yang aman.

4. Konfigurasi SSH Lanjutan
Setelah konfigurasi dasar SSH dan penguatan keamanan selesai, Anda dapat melanjutkan ke fitur lanjutan untuk fleksibilitas dan keamanan yang lebih baik. Bagian ini membahas manajemen ssh.socket (Ubuntu 22.10+), terowongan SSH, mendengarkan pada beberapa port, dan kontrol akses berbasis IP.
4.1 Menggunakan ssh.socket pada Ubuntu 22.10+
Pada Ubuntu 22.10+, SSH dapat dikelola oleh ssh.socket alih‑alih ssh.service. Aktivasi berbasis socket ini memulai SSH hanya saat diperlukan, menghemat sumber daya sistem.
4.1.1 Periksa Status ssh.socket
sudo systemctl status ssh.socket
Contoh output (diaktifkan):
● ssh.socket - OpenSSH Server Socket
Loaded: loaded (/lib/systemd/system/ssh.socket; enabled; vendor preset: enabled)
Active: active (listening) since Fri 2025-02-28 12:00:00 UTC
4.1.2 Aktifkan atau Nonaktifkan ssh.socket
Aktifkan socket:
sudo systemctl enable --now ssh.socket
Kembalikan ke ssh.service klasik:
sudo systemctl disable --now ssh.socket
sudo systemctl enable --now ssh.service
4.2 Terowongan SSH (Port Forwarding)
Terowongan SSH membangun saluran komunikasi aman antara sistem lokal dan remote.
4.2.1 Port Forwarding Lokal
Berguna untuk menghubungkan secara aman ke basis data remote atau layanan internal.
Contoh: Akses server MySQL remote pada port 3306
ssh -L 3306:localhost:3306 username@server-ip-address
4.2.2 Port Forwarding Terbalik
Mengekspos layanan lokal melalui server remote.
Contoh: Publikasikan server web lokal pada port remote 8080
ssh -R 8080:localhost:80 username@server-ip-address
4.2.3 Port Forwarding Dinamis (Proxy SOCKS)
Gunakan SSH sebagai proxy SOCKS untuk penjelajahan anonim.
ssh -D 1080 username@server-ip-address
4.3 Mendengarkan pada Beberapa Port
SSH dapat mendengarkan pada lebih dari satu port untuk fleksibilitas di berbagai lingkungan jaringan.
4.3.1 Langkah‑langkah Konfigurasi
- Edit
/etc/ssh/sshd_config:sudo nano /etc/ssh/sshd_config
- Tambahkan beberapa baris
Port:Port 22 Port 2200
- Restart SSH:
sudo systemctl restart ssh
- Izinkan port baru dengan UFW:
sudo ufw allow 2200/tcp
4.4 Izinkan SSH Hanya dari Alamat IP Tertentu
Membatasi akses SSH berdasarkan alamat IP memberikan kontrol keamanan yang kuat.
4.4.1 Konfigurasikan /etc/hosts.allow
sudo nano /etc/hosts.allow
Tambahkan alamat IP yang diizinkan:
sshd: 192.168.1.100
4.4.2 Konfigurasikan /etc/hosts.deny
sudo nano /etc/hosts.deny
Tolak semua yang lain:
sshd: ALL
Kesimpulan
Bagian ini mencakup topik konfigurasi SSH lanjutan:
- Mengelola
ssh.socketdi Ubuntu 22.10+ - Menggunakan terowongan SSH (port forwarding)
- Mendengarkan pada beberapa port SSH
- Membatasi akses SSH ke alamat IP tertentu
Menerapkan konfigurasi ini meningkatkan keamanan dan kegunaan.
5. Pemecahan Masalah SSH
Bahkan dengan konfigurasi yang benar, koneksi SSH kadang‑kadang dapat gagal. Bagian ini menjelaskan masalah SSH umum dan solusinya.
5.1 Ketika SSH Tidak Dapat Terhubung
Jika SSH mengembalikan Connection refused atau timeout, penyebab yang mungkin meliputi masalah layanan, konfigurasi port yang salah, atau pembatasan firewall.
5.1.1 Layanan SSH Tidak Berjalan
sudo systemctl status ssh
Solusi:
- Jika
inactiveataufailed, restart SSH:sudo systemctl restart ssh
- Aktifkan auto‑start:
sudo systemctl enable ssh
5.1.2 Port SSH Tidak Terbuka
ssh -p 2200 username@server-ip-address
Periksa port yang terbuka:
sudo netstat -tulnp | grep ssh
Atau:
ss -tulnp | grep ssh
5.1.3 Firewall (UFW) Memblokir SSH
sudo ufw status
Izinkan SSH:
sudo ufw allow 22/tcp
Jika menggunakan port khusus:
sudo ufw allow 2200/tcp
5.2 Kesalahan Otentikasi
5.2.1 Nama Pengguna atau Kata Sandi Salah
ssh username@server-ip-address
5.2.2 Kunci Publik Tidak Terpasang dengan Benar
cat ~/.ssh/authorized_keys
Verifikasi bahwa itu cocok dengan id_rsa.pub lokal.
5.2.3 Izin yang Salah pada Direktori .ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Juga pastikan:
chmod 755 /home/username
5.3 Koneksi SSH Tidak Stabil atau Pemutusan Tak Terduga
5.3.1 Sesuaikan ClientAliveInterval
ClientAliveInterval 60
ClientAliveCountMax 3
sudo systemctl restart ssh
5.3.2 Sesuaikan Pengaturan Klien Lokal
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
5.4 Melihat Log SSH
5.4.1 Lihat Log Secara Real-Time
sudo journalctl -u ssh -f
5.4.2 Lihat Log Sebelumnya
sudo cat /var/log/auth.log | grep ssh
sudo grep "Failed password" /var/log/auth.log
Kesimpulan
Bagian ini menjelaskan masalah SSH umum dan cara mengatasinya:
- Periksa apakah layanan SSH berjalan
- Verifikasi port yang terbuka
- Periksa pengaturan firewall
- Pastikan otentikasi kunci yang benar
- Perbaiki masalah timeout dan pemutusan
- Analisis log SSH
Sebagian besar masalah SSH berasal dari konfigurasi yang salah atau batasan jaringan. Gunakan langkah-langkah pemecahan masalah ini untuk menyelesaikan masalah secara efisien.
6. FAQ (Pertanyaan yang Sering Diajukan)
Bagian ini menjawab pertanyaan umum terkait penggunaan dan konfigurasi SSH.
6.1 Cara Memperbaiki Masalah Timeout SSH?
6.1.1 Pengaturan di Sisi Server
ClientAliveInterval 60
ClientAliveCountMax 3
sudo systemctl restart ssh
6.1.2 Pengaturan di Sisi Klien
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
6.2 Apa yang Harus Dilakukan Jika Anda Lupa Kata Sandi SSH Anda?
6.2.1 Jika Anda Memiliki Akses Fisik
- Boot ke mode single-user (pilih
recovery modedari GRUB) - Reset kata sandi:
passwd username
- Reboot sistem
6.2.2 Jika Akses Fisik Tidak Mungkin (Cloud VPS)
- Gunakan konsol VPS yang disediakan oleh layanan hosting
- Gunakan otentikasi kunci publik
6.3 Cara Menggunakan SSH di Windows?
6.3.1 Menggunakan PowerShell
ssh username@server-ip-address
6.3.2 Menggunakan PuTTY
- Unduh & instal PuTTY
- Masukkan alamat IP server ke
Host Name - Pilih
SSHsebagai tipe koneksi - Masuk dengan nama pengguna dan kata sandi
6.4 Cara Mengonfigurasi SSH di Ubuntu WSL?
6.4.1 Instal Server SSH
sudo apt update && sudo apt install openssh-server
6.4.2 Modifikasi Pengaturan SSH
PasswordAuthentication yes
Mulai SSH secara manual (WSL tidak menggunakan systemd):
sudo service ssh start
6.5 Praktik Keamanan Tambahan Terbaik
6.5.1 Gunakan Fail2Ban
sudo apt install fail2ban -y
[sshd]
enabled = true
port = 22
maxretry = 3
findtime = 600
bantime = 3600
sudo systemctl restart fail2ban
6.5.2 Ubah Port SSH
Port 2200
sudo ufw allow 2200/tcp
6.6 Cara Memantau Log SSH secara Real Time?
sudo journalctl -u ssh -f
sudo cat /var/log/auth.log | grep ssh
6.7 Tips Menggunakan SSH Lebih Praktis
6.7.1 Gunakan .ssh/config untuk Login Sederhana
Host myserver
HostName 192.168.1.100
User user
Port 2200
IdentityFile ~/.ssh/id_rsa
Kemudian sambungkan dengan:
ssh myserver
6.7.2 Gunakan ssh-agent
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
Kesimpulan
Bagian ini merangkum pertanyaan yang sering diajukan terkait SSH:
- Cara memperbaiki masalah timeout SSH
- Cara memulihkan kata sandi yang terlupa
- Cara menggunakan SSH di Windows dan WSL
- Praktik keamanan terbaik
- Cara memeriksa log SSH
- Tips membuat SSH lebih nyaman menggunakan
.ssh/config
Dengan menerapkan teknik‑teknik ini, Anda dapat membangun lingkungan SSH yang aman dan efisien serta mengelola server remote dengan lancar.


