Panduan Lengkap Penyiapan SSH untuk Ubuntu: Akses Jarak Jauh yang Aman, Konfigurasi, dan Pemecahan Masalah

目次

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/config klien:
    Host *
        ServerAliveInterval 60
    
  • Sesuaikan pengaturan timeout pada server Tambahkan berikut ke /etc/ssh/sshd_config dan restart layanan:
    ClientAliveInterval 60
    ClientAliveCountMax 3
    
    sudo 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

  1. Edit sshd_config
    sudo nano /etc/ssh/sshd_config
    
  1. Edit atau tambahkan pengaturan berikut
    PasswordAuthentication no
    PubkeyAuthentication yes
    
  1. 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

  1. Buka sshd_config
    sudo nano /etc/ssh/sshd_config
    
  1. Modifikasi baris berikut (contoh: ubah port menjadi 2222)
    Port 2222
    
  1. Izinkan port baru melalui firewall
    sudo ufw allow 2222/tcp
    
  1. Restart layanan SSH
    sudo systemctl restart ssh
    
  1. 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

  1. Buka sshd_config
    sudo nano /etc/ssh/sshd_config
    
  1. Edit baris berikut
    PermitRootLogin no
    
  1. 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

  1. Instal Fail2Ban

sudo apt install fail2ban -y
  1. Salin file konfigurasi default
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    
  1. Edit jail.local
    sudo nano /etc/fail2ban/jail.local
    
  1. Modifikasi bagian [sshd]
    [sshd]
    enabled = true
    maxretry = 5
    bantime = 600
    findtime = 600
    
  • maxretry : Jumlah percobaan login gagal yang diizinkan
  • bantime : Durasi pemblokiran IP (detik)
  • findtime : Jendela waktu untuk menghitung percobaan gagal (detik)
  1. Restart Fail2Ban
    sudo systemctl restart fail2ban
    
  1. 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:

  1. Layanan SSH tidak berjalan
    sudo systemctl status ssh
    

Solusi: Mulai layanan jika berhenti.

sudo systemctl start ssh
  1. Firewall (UFW) memblokir SSH
    sudo ufw allow ssh
    sudo ufw enable
    
  1. 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:

  1. Edit file konfigurasi SSH
    sudo nano /etc/ssh/sshd_config
    
  1. Modifikasi arahan Port
    Port 2222
    
  1. Izinkan port baru melalui firewall
    sudo ufw allow 2222/tcp
    
  1. 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:

  1. Pastikan kunci publik terpasang dengan benar
    ls -l ~/.ssh/authorized_keys
    

Pastikan authorized_keys ada dan berisi kunci yang tepat.

  1. Periksa izin file
    chmod 600 ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
    
  1. Verifikasi bahwa SSH mengizinkan autentikasi kunci publik
    sudo nano /etc/ssh/sshd_config
    

Pastikan entri berikut ada:

PubkeyAuthentication yes
PasswordAuthentication no
  1. 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

  1. Buka file konfigurasi
    sudo nano /etc/ssh/sshd_config
    
  1. Tambahkan entri AllowUsers
    AllowUsers username@192.168.1.100
    
  1. Restart layanan SSH
    sudo systemctl restart ssh
    

Metode 2: Konfigurasi firewall (UFW)

  1. Izinkan akses dari IP tertentu
    sudo ufw allow from 192.168.1.100 to any port 22
    
  1. 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

  1. Tambahkan berikut ke ~/.ssh/config :
    Host *
        ServerAliveInterval 60
    

Pengaturan sisi server

  1. Edit sshd_config
    sudo nano /etc/ssh/sshd_config
    
  1. Tambahkan atau ubah:
    ClientAliveInterval 60
    ClientAliveCountMax 3
    
  1. 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_config jika 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

🎥 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 fail2ban dan logwatch untuk 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! 🖥️🔐