- 1 1. Pendahuluan
- 2 2. Konsep Dasar SSH
- 3 3. Menginstal Server SSH di Ubuntu
- 4 4. Mengonfigurasi Koneksi SSH
- 5 5. Menjalankan Koneksi SSH
- 6 6. Memecahkan Masalah Koneksi SSH
- 7 7. Meningkatkan Keamanan SSH
- 8 8. Pertanyaan yang Sering Diajukan (FAQ)
- 8.1 Q1: Mengapa SSH menampilkan “Connection refused”?
- 8.2 Q2: Bagaimana cara mengubah port SSH default?
- 8.3 Q3: Apa yang harus saya periksa jika autentikasi kunci publik tidak berfungsi?
- 8.4 Q4: Bagaimana cara mengizinkan akses SSH hanya dari alamat IP tertentu?
- 8.5 Q5: Bagaimana cara mengubah batas waktu sesi SSH?
- 8.6 Ringkasan
- 9 9. Kesimpulan
1. Pendahuluan
Dengan menggunakan SSH di Ubuntu, Anda dapat mengakses dan mengoperasikan server atau PC secara remote dengan aman. Artikel ini memberikan penjelasan detail tentang SSH—dari konsep dasar dan cara menginstal server SSH di Ubuntu, hingga praktik keamanan terbaik dan pemecahan masalah—dengan penjelasan yang jelas bahkan untuk pemula.
Apa Itu SSH?
SSH (Secure Shell) adalah protokol yang memungkinkan koneksi remote yang aman ke komputer melalui jaringan. Tidak seperti protokol tradisional seperti Telnet atau FTP, SSH mengenkripsi data komunikasi, secara signifikan mengurangi risiko penyadapan dan manipulasi.
Kasus Penggunaan Utama SSH di Ubuntu
Skenario utama di mana SSH digunakan di Ubuntu meliputi hal‑hal berikut:
- Manajemen Server Remote : Mengoperasikan server Ubuntu dari lokasi jauh
- Transfer File : Menukar file secara aman menggunakan SCP atau SFTP
- Port Forwarding : Membuat koneksi remote yang aman
Apa yang Akan Anda Pelajari dalam Artikel Ini
- Konsep dasar dan mekanisme SSH
- Cara menginstal server SSH di Ubuntu
- Cara mengonfigurasi koneksi SSH dan memecahkan masalah error
- Praktik keamanan terbaik untuk SSH
2. Konsep Dasar SSH
Untuk menggunakan SSH secara efektif, penting memahami konsep inti‑nya. Pada bab ini, kami menjelaskan cara kerja SSH dan perbedaan antara metode autentikasi.
Cara Kerja SSH
SSH adalah protokol yang membangun koneksi aman antara klien dan server. Secara default, ia menggunakan port TCP 22 untuk komunikasi terenkripsi.
Fitur Utama
- Login Remote : Menjalankan perintah pada server
- Transfer File : Mengirim data secara aman via SCP atau SFTP
- Port Forwarding : Menghubungkan ke layanan lain melalui SSH
Metode Autentikasi SSH
SSH pada dasarnya menawarkan dua metode autentikasi:
Autentikasi Kata Sandi
- Masuk menggunakan nama pengguna dan kata sandi
- Sederhana, tetapi rentan terhadap serangan brute‑force
Autentikasi Kunci Publik
- Autentikasi menggunakan pasangan kunci publik dan privat
- Lebih aman dan direkomendasikan secara default
Keuntungan SSH
- Komunikasi Terenkripsi : Melindungi data yang dikirim
- Manajemen Remote Mudah : Akses dari mana saja
- Keamanan Tinggi : Membantu mencegah akses tidak sah
3. Menginstal Server SSH di Ubuntu
Untuk menggunakan SSH di Ubuntu, Anda harus menginstal paket server OpenSSH. Bab ini menjelaskan cara menginstal dan mengonfigurasinya.
Menginstal OpenSSH Server
Anda dapat menginstal OpenSSH server di Ubuntu menggunakan perintah berikut:
sudo apt update
sudo apt install openssh-server
Setelah instalasi, verifikasi bahwa layanan SSH sedang berjalan:
sudo systemctl status ssh
Memulai dan Mengelola Layanan SSH
Untuk memulai atau menghentikan layanan SSH secara manual, gunakan perintah berikut:
# Start SSH
sudo systemctl start ssh
# Enable SSH to start automatically after reboot
sudo systemctl enable ssh
# Stop SSH
sudo systemctl stop ssh
Mengonfigurasi UFW (Uncomplicated Firewall)
Jika UFW diaktifkan, koneksi SSH mungkin diblokir. Izinkan port SSH (22) dengan perintah di bawah ini:
sudo ufw allow ssh
sudo ufw enable
4. Mengonfigurasi Koneksi SSH
Untuk menggunakan SSH secara aman, konfigurasi yang tepat sangat penting. Bab ini menjelaskan cara menyiapkan autentikasi kunci publik.
Membuat Pasangan Kunci
Jalankan perintah berikut pada mesin klien untuk membuat pasangan kunci publik/privat:
ssh-keygen -t rsa -b 4096
Secara default, kunci privat disimpan di ~/.ssh/id_rsa, dan kunci publik disimpan di ~/.ssh/id_rsa.pub.
Mengunggah Kunci Publik ke Server
Transfer kunci publik yang telah dibuat ke server SSH:
ssh-copy-id username@server-ip-address
Atau transfer secara manual:
scp ~/.ssh/id_rsa.pub username@server-ip-address:~/
Di server, jalankan perintah berikut untuk menempatkan kunci publik di direktori yang tepat:
mkdir -p ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/id_rsa.pub
Mengedit sshd_config
Buka file konfigurasi SSH untuk meningkatkan pengaturan keamanan:
sudo nano /etc/ssh/sshd_config
Periksa dan edit item konfigurasi berikut:
# Disable password authentication (use public key only)
PasswordAuthentication no
# Disable root login
PermitRootLogin no
# Change the SSH port (example: 2222)
Port 2222
Setelah melakukan perubahan, restart layanan SSH:
sudo systemctl restart ssh
5. Menjalankan Koneksi SSH
Setelah server SSH dikonfigurasi di Ubuntu, Anda dapat terhubung dari mesin klien. Bab ini menjelaskan penggunaan dasar SSH dan metode koneksi ketika port diubah.
Perintah Koneksi SSH Dasar
Gunakan perintah berikut untuk terhubung dari klien SSH ke server:
ssh username@server-ip-address
Sebagai contoh, jika IP server adalah 192.168.1.10 dan nama pengguna adalah ubuntu, ketik:
ssh ubuntu@192.168.1.10
Pada koneksi pertama, sidik jari server akan ditampilkan. Masukkan yes untuk menerima dan melanjutkan.
Menghubungkan Setelah Mengubah Nomor Port
Jika Anda mengubah port SSH—misalnya menjadi 2222—gunakan opsi -p:
ssh -p 2222 ubuntu@192.168.1.10
Menghubungkan dengan Kunci Pribadi
Jika otentikasi kunci publik telah dikonfigurasi, tentukan kunci pribadi menggunakan opsi -i:
ssh -i ~/.ssh/id_rsa ubuntu@192.168.1.10
Menjalankan Perintah Jarak Jauh via SSH
Anda dapat menjalankan perintah langsung di server remote tanpa masuk secara interaktif:
ssh ubuntu@192.168.1.10 "ls -lah /home/ubuntu"
Pendekatan ini memungkinkan otomatisasi yang efisien dan operasi remote menggunakan skrip.
Mentransfer File dengan SCP
Anda dapat mentransfer file antara PC lokal dan server remote menggunakan SSH.
Lokal → Remote
scp filename username@server-ip-address:/remote/directory
Contoh:
scp myfile.txt ubuntu@192.168.1.10:/home/ubuntu/
Remote → Lokal
scp username@server-ip-address:/remote/filename /local/directory
Contoh:
scp ubuntu@192.168.1.10:/home/ubuntu/myfile.txt ./
Mengelola File dengan SFTP
Anda juga dapat mengelola file menggunakan SFTP:
sftp ubuntu@192.168.1.10
Setelah terhubung, Anda dapat menjalankan perintah berikut:
ls # List files
cd # Change directory
put filename # Upload a local file to the remote server
get filename # Download a remote file to the local machine
exit # Exit the connection
6. Memecahkan Masalah Koneksi SSH
Tidak jarang mengalami masalah saat terhubung via SSH. Bab ini menjelaskan masalah umum dan cara mengatasinya.
Penyebab Umum Kesalahan Koneksi SSH dan Solusinya
Ketika koneksi SSH gagal, penyebabnya biasanya salah satu dari berikut ini:
1. Server SSH Tidak Berjalan
Pertama, pastikan server SSH berjalan dengan baik:
sudo systemctl status ssh
Solusi:
- Jika server SSH berhenti, mulai kembali dengan perintah berikut:
sudo systemctl start ssh
- Untuk mengaktifkan SSH agar otomatis mulai setelah reboot, jalankan:
sudo systemctl enable ssh
2. Firewall (UFW) Memblokir SSH
Jika UFW (Uncomplicated Firewall) diaktifkan, akses SSH mungkin diblokir:
Solusi:
- Periksa konfigurasi UFW saat ini:
sudo ufw status
- Izinkan akses SSH:
sudo ufw allow ssh
(Jika menggunakan port khusus, jalankan sudo ufw allow <nomor-port>)
- Restart UFW:
sudo ufw reload
3. Nomor Port Telah Diubah
Jika server SSH tidak menggunakan port default 22, Anda harus menentukan port yang benar saat terhubung:
Solusi:
- Periksa nomor port pada server:
sudo grep Port /etc/ssh/sshd_config
- Tentukan port yang benar pada klien:
ssh -p 2222 username@server-ip-address
4. Izin Kunci SSH yang Salah
Jika Anda menggunakan autentikasi kunci publik, izin kunci yang salah dapat mencegah koneksi.
Solusi:
- Atur izin untuk kunci pribadi:
chmod 600 ~/.ssh/id_rsa
- Atur izin untuk kunci publik:
chmod 644 ~/.ssh/authorized_keys
5. Ketidaksesuaian Kunci Host
Jika kunci host SSH pada server telah berubah, klien mungkin menampilkan error seperti: “PERINGATAN: IDENTIFIKASI HOST JARAK JAUH TELAH BERUBAH!”
Solusi:
- Hapus kunci host lama:
ssh-keygen -R <server-ip-address>
- Coba sambungkan kembali:
ssh username@server-ip-address
6. Memeriksa Log SSH
Untuk mengidentifikasi pesan error SSH secara detail, periksa file log server:
sudo journalctl -u ssh --no-pager | tail -n 20
Untuk memantau log secara real time, jalankan:
sudo tail -f /var/log/auth.log
7. Masalah Timeout Koneksi SSH
Jika koneksi SSH lambat atau terputus secara tak terduga, tinjau poin-poin berikut:
Solusi:
- Aktifkan KeepAlive Tambahkan berikut ke
~/.ssh/configklien:Host * ServerAliveInterval 60
- Sesuaikan pengaturan timeout pada server Tambahkan berikut ke
/etc/ssh/sshd_configdan restart layanan:ClientAliveInterval 60 ClientAliveCountMax 3sudo systemctl restart ssh
Ringkasan
Masalah koneksi SSH biasanya berasal dari poin-poin berikut. Dalam kebanyakan kasus, memeriksa item-item ini menyelesaikan masalah:
✅ Verifikasi bahwa layanan SSH sedang berjalan
✅ Periksa apakah firewall memblokir koneksi
✅ Pastikan port SSH yang benar sedang digunakan
✅ Pastikan izin kunci SSH telah diatur dengan benar
✅ Tinjau log SSH untuk mengidentifikasi error secara detail

7. Meningkatkan Keamanan SSH
SSH adalah alat akses remote yang kuat, tetapi tanpa langkah keamanan yang tepat, ia dapat menjadi target akses tidak sah atau serangan brute‑force. Bab ini menjelaskan pengaturan yang direkomendasikan untuk memperkuat keamanan SSH.
1. Nonaktifkan Autentikasi Password dan Gunakan Autentikasi Kunci Publik
Secara default, SSH mengizinkan login dengan password, yang meningkatkan risiko serangan brute‑force. Aktifkan autentikasi kunci publik dan nonaktifkan autentikasi password untuk meningkatkan keamanan.
Langkah-langkah
- Edit
sshd_configsudo nano /etc/ssh/sshd_config
- Edit atau tambahkan pengaturan berikut
PasswordAuthentication no PubkeyAuthentication yes
- Restart layanan SSH
sudo systemctl restart ssh
Setelah menerapkan konfigurasi ini, SSH hanya akan menerima autentikasi kunci publik. Pastikan kunci SSH Anda telah dikonfigurasi dengan benar sebelumnya.
2. Ubah Nomor Port SSH
Menggunakan port SSH default (22) membuat server lebih mudah menjadi target penyerang. Mengubah nomor port membantu mengurangi upaya akses tidak sah.
Langkah-langkah
- Buka
sshd_configsudo nano /etc/ssh/sshd_config
- Modifikasi baris berikut (contoh: ubah port menjadi 2222)
Port 2222
- Izinkan port baru melalui firewall
sudo ufw allow 2222/tcp
- Restart layanan SSH
sudo systemctl restart ssh
- Uji koneksi menggunakan port baru
ssh -p 2222 username@server-ip-address
3. Nonaktifkan Login Root
Secara default, SSH mengizinkan login root, yang menimbulkan risiko keamanan serius. Disarankan untuk mengizinkan akses SSH hanya melalui akun pengguna biasa dan menggunakan sudo ketika hak istimewa administratif diperlukan.
Langkah-langkah
- Buka
sshd_configsudo nano /etc/ssh/sshd_config
- Edit baris berikut
PermitRootLogin no
- Restart layanan SSH
sudo systemctl restart ssh
4. Cegah Serangan Brute‑Force dengan Fail2Ban
Fail2Ban mendeteksi upaya login tidak sah dan secara otomatis memblokir alamat IP yang melebihi sejumlah kegagalan tertentu.
Instalasi dan Konfigurasi
- Instal Fail2Ban
sudo apt install fail2ban -y
- Salin file konfigurasi default
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Edit
jail.localsudo nano /etc/fail2ban/jail.local
- Modifikasi bagian
[sshd][sshd] enabled = true maxretry = 5 bantime = 600 findtime = 600
maxretry: Jumlah percobaan login gagal yang diizinkanbantime: Durasi pemblokiran IP (detik)findtime: Jendela waktu untuk menghitung percobaan gagal (detik)
- Restart Fail2Ban
sudo systemctl restart fail2ban
- Periksa status Fail2Ban saat ini
sudo fail2ban-client status sshd
Ringkasan
Untuk meningkatkan keamanan SSH, terapkan langkah-langkah berikut:
✅ Nonaktifkan autentikasi password dan gunakan autentikasi kunci publik
✅ Ubah port SSH untuk mengurangi eksposur serangan
✅ Nonaktifkan login root untuk meminimalkan risiko
✅ Gunakan Fail2Ban untuk mencegah serangan brute‑force
8. Pertanyaan yang Sering Diajukan (FAQ)
Bagian ini membahas pertanyaan umum dan masalah yang muncul saat mengkonfigurasi dan menggunakan SSH.
Q1: Mengapa SSH menampilkan “Connection refused”?
Ada beberapa penyebab kemungkinan SSH ditolak.
Penyebab utama dan solusi:
- Layanan SSH tidak berjalan
sudo systemctl status ssh
Solusi: Mulai layanan jika berhenti.
sudo systemctl start ssh
- Firewall (UFW) memblokir SSH
sudo ufw allow ssh sudo ufw enable
- Nomor port SSH telah diubah Jika SSH menggunakan port khusus, tentukan saat menghubungkan.
ssh -p 2222 username@server-ip-address
Q2: Bagaimana cara mengubah port SSH default?
Port 22 adalah target serangan umum, jadi mengubahnya meningkatkan keamanan.
Langkah‑langkah:
- Edit file konfigurasi SSH
sudo nano /etc/ssh/sshd_config
- Modifikasi arahan
PortPort 2222
- Izinkan port baru melalui firewall
sudo ufw allow 2222/tcp
- Restart layanan SSH
sudo systemctl restart ssh
Setelah melakukan perubahan ini, sambungkan menggunakan port baru:
ssh -p 2222 username@server-ip-address
Q3: Apa yang harus saya periksa jika autentikasi kunci publik tidak berfungsi?
Verifikasi hal berikut jika autentikasi kunci SSH gagal:
- Pastikan kunci publik terpasang dengan benar
ls -l ~/.ssh/authorized_keys
Pastikan authorized_keys ada dan berisi kunci yang tepat.
- Periksa izin file
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
- Verifikasi bahwa SSH mengizinkan autentikasi kunci publik
sudo nano /etc/ssh/sshd_config
Pastikan entri berikut ada:
PubkeyAuthentication yes
PasswordAuthentication no
- Restart layanan SSH
sudo systemctl restart ssh
Q4: Bagaimana cara mengizinkan akses SSH hanya dari alamat IP tertentu?
Membatasi akses SSH ke alamat IP tertentu secara signifikan meningkatkan keamanan.
Metode 1: Edit sshd_config
- Buka file konfigurasi
sudo nano /etc/ssh/sshd_config
- Tambahkan entri
AllowUsersAllowUsers username@192.168.1.100
- Restart layanan SSH
sudo systemctl restart ssh
Metode 2: Konfigurasi firewall (UFW)
- Izinkan akses dari IP tertentu
sudo ufw allow from 192.168.1.100 to any port 22
- Tolak akses dari yang lain
sudo ufw deny 22
Q5: Bagaimana cara mengubah batas waktu sesi SSH?
Jika sesi SSH Anda terputus setelah tidak aktif, ubah pengaturan berikut.
Pengaturan sisi klien
- Tambahkan berikut ke
~/.ssh/config:Host * ServerAliveInterval 60
Pengaturan sisi server
- Edit
sshd_configsudo nano /etc/ssh/sshd_config
- Tambahkan atau ubah:
ClientAliveInterval 60 ClientAliveCountMax 3
- Restart layanan SSH
sudo systemctl restart ssh
Ringkasan
This FAQ covered the most common SSH issues and solutions. When a problem occurs, always review logs and configuration settings to pinpoint the cause.
✅ Cara mengatasi “Connection refused” issues
✅ Cara mengubah port SSH default dan terhubung dengan benar
✅ Cara memecahkan masalah kegagalan otentikasi kunci publik
✅ Cara membatasi akses SSH ke alamat IP tertentu
✅ Cara mencegah timeout sesi SSH
9. Kesimpulan
Artikel ini menjelaskan cara mengkonfigurasi dan menggunakan SSH di Ubuntu, mulai dari konsep dasar hingga praktik keamanan lanjutan. Mari kita rangkum poin-poin penting.
Poin Penting
1. Dasar-dasar SSH
- SSH memungkinkan akses remote yang aman melalui komunikasi terenkripsi.
- Lebih aman dibandingkan Telnet atau FTP.
- Metode otentikasi meliputi otentikasi password dan otentikasi kunci publik .
2. Menginstal Server SSH
- Instal OpenSSH melalui
sudo apt install openssh-server. - Verifikasi status layanan dengan
systemctl status ssh. - Izinkan akses SSH melalui UFW dengan
sudo ufw allow ssh.
3. Mengkonfigurasi Akses SSH
- Terhubung dengan
ssh username@server-ip-address. - Gunakan otentikasi kunci publik untuk meningkatkan keamanan.
- Nonaktifkan otentikasi password di
sshd_configjika diinginkan.
4. Pemecahan Masalah
- Periksa apakah SSH berjalan (
systemctl status ssh). - Tentukan port yang benar jika telah diubah (
ssh -p 2222 username@IP). - Verifikasi izin kunci di
~/.ssh/authorized_keys.
5. Peningkatan Keamanan
- Nonaktifkan otentikasi password dan gunakan kunci publik.
- Ubah port SSH untuk mengurangi serangan pemindaian.
- Gunakan Fail2Ban untuk memblokir kegagalan login berulang.
- Batasi akses SSH ke alamat IP tertentu bila memungkinkan.
Sumber Belajar Tambahan
Untuk memperdalam pemahaman Anda tentang SSH, jelajahi sumber berikut:
📚 Dokumentasi Resmi
🛠 Alat Terkait
- PuTTY untuk akses SSH di Windows
- Download PuTTY
- MobaXterm untuk fitur SSH lanjutan
- MobaXterm Official Site
🎥 Video Rekomendasi
- Cari di YouTube dengan kata kunci “Ubuntu SSH setup” untuk menemukan tutorial pemula.
作成した動画を友だち、家族、世界中の人たちと共有…
Langkah Selanjutnya
Setelah Anda memahami cara kerja SSH, jelajahi penggunaan yang lebih lanjutan:
✅ Otomatisasi manajemen server menggunakan Ansible melalui SSH
- Ideal untuk mengelola banyak server secara efisien.
✅ Tunneling SSH dan port forwarding
- Gunakan SSH untuk mengamankan koneksi desktop remote atau membuat terowongan mirip VPN.
✅ Pantau log SSH dan tingkatkan keamanan
- Gunakan alat seperti
fail2bandanlogwatchuntuk memantau aktivitas mencurigakan.
Pemikiran Akhir
Terima kasih telah membaca panduan ini sampai akhir! 🎉
Mengkonfigurasi SSH dengan benar di Ubuntu secara signifikan meningkatkan efisiensi dan keamanan manajemen remote.
Saat Anda terus belajar, jelajahi teknik lanjutan seperti tunneling aman dan pemantauan proaktif untuk membangun sistem yang lebih kuat.
Nikmati pengalaman SSH yang aman dan produktif! 🖥️🔐
