- 1 1. Pendahuluan
- 2 2. Konfigurasi Dasar SSH
- 3 Ringkasan
- 4 3. Meningkatkan Keamanan SSH
- 5 Ringkasan
- 6 4. Konfigurasi Lanjutan SSH
- 7 Ringkasan
- 8 5. Troubleshooting SSH
- 9 Ringkasan
- 10 6. FAQ (Pertanyaan yang Sering Diajukan)
- 10.1 6.1 Bagaimana mengatasi SSH sering timeout?
- 10.2 6.2 Lupa Password SSH?
- 10.3 6.3 Cara Pakai SSH di Windows?
- 10.4 6.4 Cara Setup SSH Server di Ubuntu WSL (Windows Subsystem for Linux)?
- 10.5 6.5 Setelah Setup SSH, Apa Langkah Keamanan Lanjutan?
- 10.6 6.6 Cara Cek Log SSH di Ubuntu Secara Real-time?
- 10.7 6.7 Tips Mempermudah SSH?
- 11 Ringkasan
- 12 Artikel Terkait
1. Pendahuluan
Mengonfigurasi SSH di Ubuntu sangat penting untuk mengelola server jarak jauh. SSH (Secure Shell) adalah protokol yang menyediakan komunikasi terenkripsi yang aman, dan banyak digunakan untuk mengakses server dari jarak jauh, menjalankan perintah, atau mentransfer file.
Artikel ini akan membahas cara mengatur SSH di Ubuntu secara lengkap, mulai dari instalasi dasar hingga langkah-langkah keamanan tingkat lanjut.
1.1 Alasan Mengatur SSH di Ubuntu
1.1.1 Apa itu SSH?
SSH (Secure Shell) adalah protokol yang digunakan untuk komunikasi jaringan yang aman. Biasanya SSH digunakan untuk login ke server remote, transfer file, dan tunneling (port forwarding). Berbeda dengan Telnet atau FTP, komunikasi melalui SSH dienkripsi sehingga jauh lebih aman.
1.1.2 Kapan SSH Dibutuhkan di Ubuntu?
Beberapa skenario pengelolaan Ubuntu secara remote antara lain:
- Manajemen Server Cloud: Layanan cloud seperti AWS, GCP, Vultr, dan lain-lain umumnya menggunakan SSH untuk mengakses server secara remote.
- Remote di Jaringan Lokal (LAN): Mengakses server internal kantor atau mesin pengembangan melalui SSH untuk pekerjaan jarak jauh.
- Manajemen Perangkat IoT: Mengendalikan perangkat embedded seperti Raspberry Pi dari jarak jauh.
Secara default, server SSH di Ubuntu tidak aktif. Maka dari itu, Anda perlu menginstal dan mengkonfigurasikan SSH secara manual agar dapat digunakan.
2. Konfigurasi Dasar SSH
Untuk menggunakan SSH di Ubuntu, Anda perlu menginstal server SSH (OpenSSH) dan melakukan konfigurasi yang sesuai. Bagian ini menjelaskan langkah-langkah instalasi, konfigurasi dasar, pengaturan firewall, dan cara koneksi.
2.1 Instalasi & Menjalankan OpenSSH
2.1.1 Apa itu OpenSSH?
OpenSSH (Open Secure Shell) adalah perangkat lunak open-source yang mengimplementasikan protokol SSH. Selain koneksi remote, OpenSSH juga mendukung transfer file yang aman (SCP/SFTP) dan port forwarding.
2.1.2 Instalasi OpenSSH
Karena server SSH tidak terinstal secara default di Ubuntu, gunakan perintah berikut untuk instalasi:
sudo apt update && sudo apt install -y openssh-server
Perintah ini akan memperbarui daftar paket dan menginstal OpenSSH Server.
2.1.3 Menjalankan & Mengaktifkan SSH Server
Setelah instalasi, jalankan SSH server dan aktifkan otomatis saat boot:
sudo systemctl enable --now ssh
Opsi enable
memastikan layanan SSH otomatis berjalan saat sistem menyala.
2.1.4 Verifikasi SSH Server
Untuk memeriksa apakah SSH server berjalan dengan baik, jalankan:
systemctl status ssh
Jika output seperti berikut, SSH berjalan dengan baik:
● 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 tertulis inactive (dead)
atau failed
, jalankan perintah berikut untuk memulai ulang SSH:
sudo systemctl start ssh
2.2 Konfigurasi Firewall (UFW)
Ubuntu menyediakan UFW (Uncomplicated Firewall) yang mudah digunakan. Untuk mengizinkan koneksi SSH, lakukan pengaturan berikut.
2.2.1 Cek Status UFW
Periksa status firewall saat ini:
sudo ufw status
Contoh output (UFW nonaktif):
Status: inactive
Contoh output (UFW aktif):
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
2.2.2 Mengizinkan Koneksi SSH
Untuk mengizinkan port default SSH 22
, jalankan:
sudo ufw allow ssh
Atau secara spesifik dengan port:
sudo ufw allow 22/tcp
2.2.3 Mengaktifkan UFW
Jika UFW belum aktif, aktifkan dengan:
sudo ufw enable
Pastikan port SSH sudah diizinkan sebelum mengaktifkan UFW agar tidak terkunci dari server.
2.2.4 Verifikasi Pengaturan Firewall
Periksa pengaturan firewall apakah sudah sesuai:
sudo ufw status verbose
Contoh output
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Jika sudah seperti di atas, SSH dapat digunakan.
2.3 Cara Dasar Koneksi SSH
Setelah SSH server aktif, coba koneksi dari komputer klien.
2.3.1 Koneksi dari Linux/macOS
Buka terminal, lalu jalankan:
ssh username@alamat-IP-server
Contoh:
ssh user@192.168.1.100
Pada koneksi pertama, mungkin muncul peringatan seperti ini:
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
lalu tekan Enter untuk melanjutkan koneksi.
2.3.2 Koneksi dari Windows
Di Windows, gunakan PowerShell atau PuTTY untuk koneksi SSH.
Menggunakan PowerShell
Mulai Windows 10, PowerShell sudah memiliki SSH client bawaan. Jalankan perintah berikut:
ssh username@alamat-IP-server
Menggunakan PuTTY
- Unduh & instal PuTTY
- Buka PuTTY, isi
Host Name (or IP address)
dengan IP server - Set
Connection type
keSSH
, klikOpen
- Masukkan username dan password
Ringkasan
Pada bagian ini kita telah membahas langkah-langkah dasar pengaturan SSH di Ubuntu:
- Cara instal dan menjalankan OpenSSH
- Pengaturan UFW untuk mengizinkan koneksi SSH
- Cara koneksi SSH dari Linux/macOS dan Windows
3. Meningkatkan Keamanan SSH
SSH sangat berguna untuk koneksi remote, tapi jika tidak diamankan bisa menjadi sasaran serangan. Penyerang sering mencoba brute-force dan port scanning terhadap SSH. Karena itu, penting untuk mengatur keamanan SSH dengan benar.
3.1 Melarang Login User root
Secara default, SSH di Ubuntu kadang mengizinkan login sebagai root. Akun root memiliki hak akses penuh sehingga menjadi target serangan. Melarang login root dan hanya menggunakan user biasa meningkatkan keamanan.
3.1.1 Langkah Pengaturan
- Edit file konfigurasi SSH
/etc/ssh/sshd_config
.
sudo nano /etc/ssh/sshd_config
- Cari dan ubah menjadi
PermitRootLogin no
.
PermitRootLogin no
- Simpan file, lalu restart layanan SSH.
sudo systemctl restart ssh
- Verifikasi apakah pengaturan sudah aktif:
sudo grep PermitRootLogin /etc/ssh/sshd_config
Jika hasilnya PermitRootLogin no
, pengaturan sudah benar.
3.2 Nonaktifkan Password dan Pakai Autentikasi Key (Public Key)
Autentikasi SSH dengan public key lebih aman dibanding password. Dengan public key, tidak perlu memasukkan password dan risiko brute-force menurun.
3.2.1 Membuat SSH Key
Buat key SSH di PC lokal:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
Akan muncul dua file:
- Private key (
id_rsa
) → simpan di PC lokal (jangan dibagikan) - Public key (
id_rsa.pub
) → upload ke server
3.2.2 Upload Public Key ke Server
Gunakan perintah berikut untuk mengirim public key ke server:
ssh-copy-id username@alamat-IP-server
3.2.3 Nonaktifkan Password Authentication
Buka file konfigurasi SSH:
sudo nano /etc/ssh/sshd_config
Cari dan ubah menjadi PasswordAuthentication no
.
PasswordAuthentication no
Lalu restart SSH:
sudo systemctl restart ssh
3.3 Hanya Izinkan User Tertentu
Batasi akses SSH hanya untuk user tertentu guna meningkatkan keamanan.
3.3.1 Langkah Pengaturan
- Buka file konfigurasi
/etc/ssh/sshd_config
.
sudo nano /etc/ssh/sshd_config
- Tambahkan user yang diizinkan:
AllowUsers user1 user2
- Restart SSH agar perubahan berlaku.
sudo systemctl restart ssh
3.4 Mengganti Port Default SSH
Port default SSH (22) sering jadi target. Mengubah ke port lain bisa menambah keamanan.
3.4.1 Langkah Pengaturan
- Buka konfigurasi SSH:
sudo nano /etc/ssh/sshd_config
- Cari
Port 22
, ubah ke misalnyaPort 2200
.
Port 2200
- Simpan dan restart SSH.
sudo systemctl restart ssh
3.4.2 Update Pengaturan Firewall
Setelah port diubah, izinkan port baru di UFW:
sudo ufw allow 2200/tcp
Verifikasi dengan:
sudo ufw status
3.5 Melindungi SSH dari Serangan Brute Force dengan Fail2Ban
Fail2Ban memantau percobaan login gagal SSH dan otomatis memblokir IP yang mencurigakan.
3.5.1 Instalasi Fail2Ban
sudo apt install fail2ban -y
3.5.2 Salin & Edit Konfigurasi
Salin konfigurasi dan edit:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Ubah bagian berikut:
[sshd]
enabled = true
port = 2200
maxretry = 3
findtime = 600
bantime = 3600
3.5.3 Restart Fail2Ban
Agar konfigurasi baru berlaku:
sudo systemctl restart fail2ban
3.5.4 Cek Daftar IP yang Diblokir
sudo fail2ban-client status sshd
Ringkasan
Pada bagian ini, kita membahas cara meningkatkan keamanan SSH:
- Menonaktifkan login root
- Menonaktifkan password dan memakai public key authentication
- Membatasi user yang boleh SSH
- Mengganti port SSH
- Mengaktifkan Fail2Ban untuk blokir serangan
Dengan langkah ini, keamanan server SSH Anda akan meningkat.

4. Konfigurasi Lanjutan SSH
Setelah konfigurasi dasar dan keamanan selesai, Anda bisa menggunakan fitur lanjutan SSH di Ubuntu, misal mengelola ssh.socket
(Ubuntu 22.10 ke atas), SSH tunnel (port forwarding), multi-port listening, atau membatasi akses IP tertentu.
4.1 Mengelola ssh.socket
pada Ubuntu 22.10 ke Atas
Mulai Ubuntu 22.10, layanan SSH bisa dikelola lewat ssh.socket
(SSH aktif hanya saat ada koneksi masuk), yang lebih hemat resource.
4.1.1 Cek Status ssh.socket
Cek status ssh.socket
:
sudo systemctl status ssh.socket
Jika aktif:
● 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 Mengaktifkan/Menonaktifkan ssh.socket
Untuk mengaktifkan ssh.socket
:
sudo systemctl enable --now ssh.socket
Untuk kembali ke ssh.service
tradisional:
sudo systemctl disable --now ssh.socket
sudo systemctl enable --now ssh.service
4.2 SSH Tunnel (Port Forwarding)
SSH tunnel memungkinkan komunikasi aman antara server & PC lokal, tanpa ekspos ke internet langsung.
4.2.1 Local Port Forwarding
Untuk mengakses database/web server di remote secara aman:
Contoh: Akses MySQL server (port 3306) dari PC lokal
ssh -L 3306:localhost:3306 username@alamat-IP-server
4.2.2 Reverse Port Forwarding
Untuk membuka akses dari luar ke server lokal via SSH:
Contoh: Akses web server lokal (port 80) melalui port 8080 remote
ssh -R 8080:localhost:80 username@alamat-IP-server
4.2.3 Dynamic Port Forwarding
Gunakan SSH sebagai SOCKS proxy untuk browsing anonim:
Contoh: Proxy SOCKS di port 1080 lokal
ssh -D 1080 username@alamat-IP-server
4.3 SSH Listening di Multi-Port
SSH bisa diatur mendengarkan di lebih dari satu port.
4.3.1 Langkah Pengaturan
- Edit
/etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
- Tambahkan baris:
Port 22
Port 2200
- Restart SSH
sudo systemctl restart ssh
- Izinkan port baru di UFW
sudo ufw allow 2200/tcp
4.4 Hanya Izinkan SSH dari IP Tertentu
Batasi akses SSH hanya dari alamat IP tertentu untuk keamanan tambahan.
4.4.1 Atur /etc/hosts.allow
Hanya izinkan IP tertentu:
sudo nano /etc/hosts.allow
Tambah baris berikut (192.168.1.100
diganti dengan IP yang diizinkan):
sshd: 192.168.1.100
4.4.2 Atur /etc/hosts.deny
Blokir semua IP lain:
sudo nano /etc/hosts.deny
sshd: ALL
Hanya IP di hosts.allow
yang bisa SSH.
Ringkasan
Bagian ini membahas pengaturan lanjutan SSH:
- Manajemen
ssh.socket
di Ubuntu 22.10+ - SSH Tunnel (Port Forwarding) untuk komunikasi aman
- SSH listening di multi-port
- Pembatasan akses SSH ke IP tertentu
Dengan pengaturan ini, SSH akan lebih aman dan fleksibel.
5. Troubleshooting SSH
Walaupun sudah diatur, kadang SSH tidak bisa digunakan karena berbagai sebab. Bagian ini menjelaskan masalah umum SSH dan solusinya.
5.1 Tidak Bisa Terhubung ke SSH
Jika muncul error Connection refused
atau timeout, berikut kemungkinan penyebabnya:
5.1.1 Layanan SSH Tidak Berjalan
Periksa status layanan SSH:
sudo systemctl status ssh
Solusi:
- Jika
Active: inactive (dead)
ataufailed
, restart SSH:
sudo systemctl restart ssh
- Untuk otomatisasi saat boot:
sudo systemctl enable ssh
5.1.2 Port SSH Tidak Terbuka
Jika port SSH sudah diubah, saat koneksi pastikan memakai port yang benar:
ssh -p 2200 username@alamat-IP-server
Untuk cek port yang terbuka:
sudo netstat -tulnp | grep ssh
Atau:
ss -tulnp | grep ssh
5.1.3 Cek Firewall (UFW)
Periksa apakah UFW memblokir SSH:
sudo ufw status
Solusi jika SSH belum diizinkan:
sudo ufw allow 22/tcp
Jika port diubah:
sudo ufw allow 2200/tcp
5.2 Masalah Autentikasi
5.2.1 Username atau Password Salah
Pastikan memakai username yang benar saat login:
ssh username@alamat-IP-server
5.2.2 Public Key Belum Terdaftar di Server
Periksa apakah public key sudah ada di ~/.ssh/authorized_keys
:
cat ~/.ssh/authorized_keys
Pastikan cocok dengan public key lokal (~/.ssh/id_rsa.pub
).
5.2.3 Izin Folder .ssh
Tidak Benar
Izin folder dan file key harus benar:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Juga cek permission folder home:
chmod 755 /home/username
5.3 Koneksi SSH Tidak Stabil / Sering Putus
Jika SSH sering putus, kemungkinan ada pengaturan timeout di server atau klien.
5.3.1 Atur ClientAliveInterval
Buka /etc/ssh/sshd_config
, tambahkan:
ClientAliveInterval 60
ClientAliveCountMax 3
Lalu restart SSH.
sudo systemctl restart ssh
5.3.2 Atur di Sisi Klien
Jika SSH sering putus dari sisi klien, tambahkan di ~/.ssh/config
:
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
5.4 Cara Melihat Log SSH
Log sangat penting untuk troubleshooting SSH.
5.4.1 Cek Log SSH Secara Real-time
Gunakan perintah berikut:
sudo journalctl -u ssh -f
5.4.2 Cek Log SSH Lama
Untuk melihat log lama:
sudo cat /var/log/auth.log | grep ssh
Untuk mencari pesan error tertentu:
sudo grep "Failed password" /var/log/auth.log
Ringkasan
Pada bagian ini, kita membahas troubleshooting SSH:
- Cek status layanan SSH
- Cek port sudah terbuka
- Cek pengaturan firewall
- Cek public key authentication
- Solusi masalah timeout
- Pemanfaatan log SSH
Masalah SSH biasanya karena salah konfigurasi atau kendala jaringan. Gunakan tips troubleshooting di atas untuk solusi cepat.
6. FAQ (Pertanyaan yang Sering Diajukan)
Berikut beberapa pertanyaan umum dan solusi terkait penggunaan dan konfigurasi SSH. Tips ini membantu penggunaan SSH lebih aman dan efisien.
6.1 Bagaimana mengatasi SSH sering timeout?
Jika SSH terputus otomatis setelah beberapa waktu, lakukan:
6.1.1 Ubah Pengaturan Server
Edit /etc/ssh/sshd_config
:
ClientAliveInterval 60
ClientAliveCountMax 3
Lalu restart SSH.
sudo systemctl restart ssh
6.1.2 Ubah Pengaturan Klien
Di ~/.ssh/config
tambahkan:
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
6.2 Lupa Password SSH?
6.2.1 Jika Bisa Akses Fisik Server
- Boot ke single user mode (pilih
recovery mode
di GRUB) - Reset password:
passwd username
- Restart sistem
6.2.2 Jika Tidak Ada Akses Fisik (Cloud VPS)
- Gunakan fitur console di dashboard VPS
- Pakai autentikasi public key SSH
6.3 Cara Pakai SSH di Windows?
6.3.1 Pakai PowerShell
Sejak Windows 10, SSH client sudah ada di PowerShell. Jalankan:
ssh username@alamat-IP-server
6.3.2 Pakai PuTTY
- Unduh & instal PuTTY
- Masukkan IP server pada
Host Name (or IP address)
- Set
Connection type
keSSH
dan klikOpen
- Masukkan username & password
6.4 Cara Setup SSH Server di Ubuntu WSL (Windows Subsystem for Linux)?
Untuk setup SSH server di WSL:
6.4.1 Instalasi SSH Server
sudo apt update && sudo apt install openssh-server
6.4.2 Konfigurasi SSH
Edit /etc/ssh/sshd_config
dan pastikan:
PasswordAuthentication yes
Karena WSL tidak pakai systemd
, jalankan SSH manual:
sudo service ssh start
6.5 Setelah Setup SSH, Apa Langkah Keamanan Lanjutan?
6.5.1 Pasang Fail2Ban
Untuk menghindari brute-force, instal Fail2Ban:
sudo apt install fail2ban -y
Edit /etc/fail2ban/jail.local
:
[sshd]
enabled = true
port = 22
maxretry = 3
findtime = 600
bantime = 3600
Restart Fail2Ban:
sudo systemctl restart fail2ban
6.5.2 Ganti Port SSH
Buka /etc/ssh/sshd_config
, ubah dari 22
ke port lain:
Port 2200
Restart SSH dan izinkan port baru di UFW:
sudo ufw allow 2200/tcp
6.6 Cara Cek Log SSH di Ubuntu Secara Real-time?
Untuk memonitor log SSH secara langsung:
sudo journalctl -u ssh -f
Untuk cek log lama:
sudo cat /var/log/auth.log | grep ssh
6.7 Tips Mempermudah SSH?
6.7.1 Gunakan .ssh/config
untuk Login Mudah
Untuk koneksi SSH cepat, buat file ~/.ssh/config
:
Host myserver
HostName 192.168.1.100
User user
Port 2200
IdentityFile ~/.ssh/id_rsa
Setelah itu cukup jalankan:
ssh myserver
6.7.2 Pakai ssh-agent
Agar tidak perlu selalu memasukkan passphrase private key:
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
Ringkasan
Pada bagian ini, kita membahas FAQ SSH:
- Solusi SSH timeout
- Cara reset password SSH
- Pakai SSH di Windows & WSL
- Langkah keamanan tambahan
- Cara cek log SSH
- Tips SSH lebih praktis dengan
.ssh/config
Dengan panduan ini, Anda dapat membangun dan mengelola SSH di Ubuntu dengan lebih aman dan nyaman.
Artikel Terkait
1. Pendahuluan Dengan menggunakan SSH di Ubuntu, Anda dapat mengakses dan mengoperasikan server atau PC dari jarak jauh[…]