Panduan Lengkap SSH di Ubuntu: Instalasi, Konfigurasi, dan Keamanan Server

目次

1. Pendahuluan

Dengan menggunakan SSH di Ubuntu, Anda dapat mengakses dan mengoperasikan server atau PC dari jarak jauh dengan aman. Artikel ini akan menjelaskan secara detail tentang SSH, mulai dari gambaran umum, instalasi server SSH di Ubuntu, langkah-langkah keamanan, hingga pemecahan masalah, agar mudah dipahami oleh pemula.

Apa Itu SSH?

SSH (Secure Shell) adalah protokol untuk terhubung ke komputer jarak jauh melalui jaringan secara aman. Berbeda dengan Telnet atau FTP konvensional, data dienkripsi, sehingga risiko penyadapan dan perubahan data dapat sangat dikurangi.

Kegunaan Utama SSH di Ubuntu

Beberapa penggunaan utama SSH di Ubuntu meliputi:

     

  • Manajemen Server Jarak Jauh: Mengoperasikan server Ubuntu dari lokasi yang jauh.
  •  

  • Transfer File: Pertukaran file yang aman menggunakan SCP atau SFTP.
  •  

  • Port Forwarding: Koneksi jarak jauh dengan keamanan yang ditingkatkan.

Apa yang Akan Anda Pelajari dari Artikel Ini

     

  • Konsep dasar dan cara kerja SSH.
  •  

  • Cara instalasi server SSH di Ubuntu.
  •  

  • Konfigurasi koneksi SSH dan pemecahan masalah.
  •  

  • Langkah-langkah keamanan SSH.

2. Konsep Dasar SSH

Untuk dapat memanfaatkan SSH secara efektif, penting untuk memahami konsep dasarnya. Pada bagian ini, akan dijelaskan tentang cara kerja SSH dan perbedaan metode otentikasi.

Cara Kerja SSH

SSH adalah protokol yang membangun koneksi aman antara klien dan server. Secara default, ia menggunakan port TCP 22 dan melakukan komunikasi yang terenkripsi.

Fungsi Utama

     

  • Login Jarak Jauh: Mengeksekusi perintah pada server.
  •  

  • Transfer File: Mengirim data dengan aman melalui SCP atau SFTP.
  •  

  • Port Forwarding: Menghubungkan ke layanan lain melalui SSH.

Metode Otentikasi SSH

SSH memiliki dua metode otentikasi utama:

Otentikasi Kata Sandi

     

  • Login dengan memasukkan nama pengguna dan kata sandi.
  •  

  • Mudah, namun memiliki risiko serangan *brute-force*.

Otentikasi Kunci Publik

     

  • Metode otentikasi menggunakan pasangan kunci publik dan kunci privat.
  •  

  • Keamanan tinggi, metode otentikasi yang direkomendasikan.

Keunggulan SSH

     

  • Enkripsi Data: Isi komunikasi terlindungi.
  •  

  • Manajemen Jarak Jauh yang Mudah: Dapat diakses dari mana saja.
  •  

  • Peningkatan Keamanan: Lebih sulit mencegah akses tidak sah.

3. Instalasi Server SSH di Ubuntu

Untuk menggunakan SSH di Ubuntu, Anda perlu menginstal OpenSSH server. Berikut adalah langkah-langkah instalasi dan konfigurasi dasar.

Instalasi OpenSSH Server

Di Ubuntu, Anda dapat menginstal OpenSSH server dengan perintah berikut:

sudo apt update
sudo apt install openssh-server

Setelah instalasi selesai, mari kita periksa apakah layanan SSH sudah berjalan.

sudo systemctl status ssh

Memulai dan Memeriksa Status Layanan SSH

Untuk memulai atau menghentikan layanan SSH secara manual, gunakan perintah berikut:

# Memulai SSH
sudo systemctl start ssh

# Mengaktifkan SSH (otomatis berjalan setelah reboot)
sudo systemctl enable ssh

# Menghentikan SSH
sudo systemctl stop ssh

Pengaturan UFW (Uncomplicated Firewall)

Secara default, jika UFW diaktifkan, koneksi SSH mungkin akan diblokir. Izinkan port SSH (port 22) dengan perintah berikut:

sudo ufw allow ssh
sudo ufw enable

4. Konfigurasi Koneksi SSH

Untuk menggunakan SSH dengan aman, Anda perlu melakukan konfigurasi yang tepat. Bagian ini menjelaskan cara mengatur otentikasi kunci publik.

Membuat Pasangan Kunci

Di sisi klien, jalankan perintah berikut untuk membuat pasangan kunci publik dan kunci privat:

ssh-keygen -t rsa -b 4096

Secara default, kunci privat akan disimpan di ~/.ssh/id_rsa dan kunci publik di ~/.ssh/id_rsa.pub.

Menempatkan Kunci Publik di Server

Transfer kunci publik yang telah dibuat ke server SSH.

ssh-copy-id username@alamat_IP_server

Atau, jika menyalin secara manual:

scp ~/.ssh/id_rsa.pub username@alamat_IP_server:~/

Di sisi server, jalankan perintah berikut untuk menempatkan kunci publik di direktori yang sesuai:

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 keamanan.

sudo nano /etc/ssh/sshd_config

Periksa dan edit item berikut:

# Menonaktifkan otentikasi kata sandi (hanya otentikasi kunci publik)
PasswordAuthentication no

# Melarang login sebagai Root
PermitRootLogin no

# Mengubah port yang digunakan (contoh: 2222)
Port 2222

Setelah mengubah pengaturan, restart layanan SSH.

sudo systemctl restart ssh

5. Melakukan Koneksi SSH

Setelah mengkonfigurasi server SSH di Ubuntu, Anda perlu melakukan koneksi dari klien. Bagian ini menjelaskan metode koneksi SSH dasar dan cara terhubung jika port telah diubah.

Perintah Koneksi SSH Dasar

Untuk terhubung ke server dari klien SSH, gunakan perintah berikut:

ssh username@alamat_IP_server

Sebagai contoh, jika alamat IP server adalah 192.168.1.10 dan nama pengguna adalah ubuntu, masukkan seperti berikut:

ssh ubuntu@192.168.1.10

Saat koneksi pertama kali, *fingerprint* server akan ditampilkan, jadi masukkan “yes” untuk mengizinkan koneksi.

Koneksi Jika Nomor Port Diubah

Jika Anda mengubah port default 22 ke, misalnya, “2222”, tentukan dengan opsi -p seperti berikut:

ssh -p 2222 ubuntu@192.168.1.10

Koneksi dengan Menentukan Kunci Privat

Jika Anda telah mengkonfigurasi otentikasi kunci publik, Anda dapat menentukan kunci privat menggunakan opsi -i seperti berikut:

ssh -i ~/.ssh/id_rsa ubuntu@192.168.1.10

Menjalankan Perintah Jarak Jauh melalui SSH

Anda juga dapat menjalankan perintah langsung tanpa login ke server jarak jauh.

ssh ubuntu@192.168.1.10 "ls -lah /home/ubuntu"

Dengan metode ini, Anda dapat mengotomatisasi skrip dan melakukan operasi jarak jauh secara efisien.

Transfer File Menggunakan SCP

Anda dapat menggunakan SSH untuk mentransfer file antara PC lokal dan server jarak jauh.

Lokal → Jarak Jauh

scp nama_file username@alamat_IP_server:direktori_jarak_jauh

Contoh:

scp myfile.txt ubuntu@192.168.1.10:/home/ubuntu/

Jarak Jauh → Lokal

scp username@alamat_IP_server:nama_file_jarak_jauh direktori_lokal

Contoh:

scp ubuntu@192.168.1.10:/home/ubuntu/myfile.txt ./

Manajemen File Menggunakan SFTP

Anda juga dapat mengelola file menggunakan SFTP.

sftp ubuntu@192.168.1.10

Setelah terhubung, Anda dapat menggunakan perintah seperti berikut:

ls         # Daftar file
cd         # Pindah direktori
put nama_file   # Mengunggah dari lokal ke jarak jauh
get nama_file   # Mengunduh dari jarak jauh ke lokal
exit       # Mengakhiri koneksi

6. Pemecahan Masalah Koneksi SSH

Tidak jarang terjadi masalah saat koneksi SSH. Di sini, kami akan menjelaskan masalah umum dan cara mengatasinya.

Penyebab Umum dan Solusi untuk Error Koneksi SSH

Jika koneksi SSH tidak berhasil, beberapa penyebab berikut mungkin terjadi:

1. Server SSH Tidak Berjalan

Periksa apakah server SSH berfungsi dengan normal.

sudo systemctl status ssh

Solusi:

     

  • Jika server SSH berhenti, mulai dengan perintah berikut:
  sudo systemctl start ssh
     

  • Untuk memastikan SSH otomatis berjalan setelah server di-restart, jalankan perintah berikut:
  sudo systemctl enable ssh

2. Firewall (UFW) Memblokir Koneksi SSH

Jika UFW (Uncomplicated Firewall) diaktifkan, SSH mungkin diblokir.

Solusi:

     

  • Periksa pengaturan UFW saat ini.
  sudo ufw status
     

  • Izinkan SSH.
  sudo ufw allow ssh

(Jika port telah diubah, jalankan sudo ufw allow <nomor_port>)

     

  • Reload UFW.
  sudo ufw reload

3. Nomor Port Telah Diubah

Jika Anda menggunakan port kustom daripada port default 22, Anda perlu menentukan port yang benar saat terhubung.

Solusi:

     

  • Periksa port yang digunakan di sisi server.
  sudo grep Port /etc/ssh/sshd_config
     

  • Terhubung dari sisi klien dengan menentukan port yang sesuai.
  ssh -p 2222 username@alamat_IP_server

4. Izin Kunci SSH Tidak Benar

Jika Anda menggunakan otentikasi kunci publik, koneksi tidak akan berhasil jika izin file kunci tidak tepat.

Solusi:

     

  • Atur izin kunci privat dengan benar.
  chmod 600 ~/.ssh/id_rsa
     

  • Atur izin kunci publik dengan benar.
  chmod 644 ~/.ssh/authorized_keys

5. Ketidakcocokan Kunci Host

Jika kunci host SSH server berubah, error “WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!” dapat terjadi di sisi klien.

Solusi:

     

  • Hapus kunci host lama.
  ssh-keygen -R <alamat_IP_server>
     

  • Coba koneksi SSH lagi.
  ssh username@alamat_IP_server

6. Memeriksa Log SSH

Untuk melihat pesan error SSH yang lebih detail, periksa log di sisi server.

sudo journalctl -u ssh --no-pager | tail -n 20

Selain itu, untuk melihat log secara real-time, jalankan perintah berikut:

sudo tail -f /var/log/auth.log

7. Koneksi Timeout

Jika koneksi SSH lambat atau terputus di tengah jalan, periksa poin-poin berikut:

Solusi:

     

  • Mengaktifkan KeepAlive
    Tambahkan berikut ini ke ~/.ssh/config klien.
  Host *
      ServerAliveInterval 60
     

  • Menyesuaikan Pengaturan Timeout di Sisi Server
    Tambahkan berikut ini ke /etc/ssh/sshd_config dan restart layanan SSH.
  ClientAliveInterval 60
  ClientAliveCountMax 3
  sudo systemctl restart ssh

Ringkasan

Masalah koneksi SSH dapat terjadi karena berbagai alasan, tetapi dalam banyak kasus, dapat diselesaikan dengan memeriksa poin-poin berikut:

Periksa apakah layanan SSH berjalan
Periksa apakah firewall tidak memblokir
Pastikan pengaturan port sudah benar
Periksa apakah izin kunci SSH sudah tepat
Periksa log untuk pesan error

7. Penguatan Keamanan SSH

SSH adalah alat akses jarak jauh yang kuat, tetapi jika tindakan keamanan yang tepat tidak diterapkan, ia dapat menjadi target akses tidak sah dan serangan *brute-force*. Bagian ini menjelaskan pengaturan yang direkomendasikan untuk meningkatkan keamanan SSH.

1. Menonaktifkan Otentikasi Kata Sandi dan Merekomendasikan Otentikasi Kunci Publik

Secara default, SSH mengizinkan otentikasi kata sandi, tetapi ini meningkatkan risiko serangan *brute-force*. Anda dapat meningkatkan keamanan dengan mengaktifkan otentikasi kunci publik SSH dan menonaktifkan otentikasi kata sandi.

Langkah-langkah

     

  1. Edit sshd_config
   sudo nano /etc/ssh/sshd_config
     

  1. Ubah (atau tambahkan) pengaturan berikut
   PasswordAuthentication no
   PubkeyAuthentication yes
     

  1. Restart layanan SSH
   sudo systemctl restart ssh

Dengan pengaturan ini, SSH hanya akan menerima otentikasi kunci publik. Pastikan Anda telah menyelesaikan pengaturan kunci publik sebelumnya.

2. Mengubah Nomor Port SSH

Jika Anda menggunakan port default SSH (port 22) apa adanya, Anda akan lebih mudah menjadi target serangan. Disarankan untuk mengubah nomor port untuk meningkatkan keamanan.

Langkah-langkah

     

  1. Buka sshd_config
   sudo nano /etc/ssh/sshd_config
     

  1. Ubah seperti berikut (contoh: ubah ke 2222)
   Port 2222
     

  1. Izinkan port baru di firewall
   sudo ufw allow 2222/tcp
     

  1. Restart layanan SSH
   sudo systemctl restart ssh
     

  1. Uji koneksi dengan port baru
   ssh -p 2222 username@alamat_IP_server

3. Melarang Login SSH sebagai Pengguna Root

Secara default, pengguna root dapat login SSH, tetapi ini merupakan risiko keamanan. Disarankan untuk hanya mengizinkan akses SSH untuk pengguna biasa dan menggunakan sudo jika diperlukan.

Langkah-langkah

     

  1. Buka sshd_config
   sudo nano /etc/ssh/sshd_config
     

  1. Ubah baris berikut
   PermitRootLogin no
     

  1. Restart layanan SSH
   sudo systemctl restart ssh

4. Menginstal Fail2Ban untuk Mencegah Serangan Brute-Force

Fail2Ban adalah alat yang mendeteksi upaya login tidak sah dan secara otomatis memblokir alamat IP jika ada sejumlah upaya gagal.

Instalasi dan Konfigurasi

     

  1. Instal Fail2Ban
   sudo apt install fail2ban -y
     

  1. Salin file konfigurasi
   sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
     

  1. Edit jail.local
   sudo nano /etc/fail2ban/jail.local
     

  1. Ubah bagian [sshd]
   [sshd]
   enabled = true
   maxretry = 5
   bantime = 600
   findtime = 600
     

  • maxretry: Jumlah percobaan login yang diizinkan
  •  

  • bantime: Waktu blokir (detik)
  •  

  • findtime: Periode waktu untuk menentukan jumlah kegagalan (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 otentikasi kata sandi dan gunakan otentikasi kunci publik
Ubah nomor port SSH untuk mengurangi risiko serangan
Larang login Root dan izinkan akses hanya untuk pengguna tertentu
Instal Fail2Ban untuk mencegah serangan *brute-force*

8. Pertanyaan yang Sering Diajukan (FAQ)

Bagian ini akan menjelaskan secara rinci pertanyaan dan masalah umum yang sering muncul saat mengatur dan mengoperasikan SSH.

Q1: Mengapa saat koneksi SSH muncul “Connection refused”?

Ada beberapa kemungkinan penyebab penolakan koneksi ke server SSH.

Penyebab dan Solusi Utama

     

  1. Layanan SSH tidak berjalan
   sudo systemctl status ssh

Solusi: Jika layanan berhenti, mulai.

   sudo systemctl start ssh
     

  1. Firewall (UFW) memblokir
   sudo ufw allow ssh
   sudo ufw enable
     

  1. Perubahan nomor port
    Jika port SSH diubah dari default (22) ke yang lain, tentukan port yang benar.
   ssh -p 2222 username@alamat_IP_server

Q2: Bagaimana cara mengubah port default SSH?

Port default 22 mudah menjadi target serangan, jadi mengubahnya dapat meningkatkan keamanan.

Langkah-langkah

     

  1. Edit file konfigurasi
   sudo nano /etc/ssh/sshd_config
     

  1. Ubah nilai Port (contoh: 2222)
   Port 2222
     

  1. Izinkan port baru di firewall
   sudo ufw allow 2222/tcp
     

  1. Restart layanan SSH
   sudo systemctl restart ssh

Setelah perubahan, coba koneksi dengan port baru.

ssh -p 2222 username@alamat_IP_server

Q3: Poin-poin pemeriksaan jika otentikasi kunci publik tidak berfungsi?

Jika otentikasi kunci publik SSH tidak berfungsi, periksa hal-hal berikut:

     

  1. Apakah kunci publik ditempatkan dengan benar?
   ls -l ~/.ssh/authorized_keys

Pastikan authorized_keys ada dan berisi kunci yang sesuai.

     

  1. Apakah izin file sudah benar?
   chmod 600 ~/.ssh/authorized_keys
   chmod 700 ~/.ssh
     

  1. Apakah pengaturan server SSH mengizinkan otentikasi kunci publik?
   sudo nano /etc/ssh/sshd_config

Periksa pengaturan berikut:

   PubkeyAuthentication yes
   PasswordAuthentication no
     

  1. Restart layanan SSH
   sudo systemctl restart ssh

Q4: Bagaimana cara mengizinkan koneksi SSH hanya dari alamat IP tertentu?

Anda dapat meningkatkan keamanan SSH dengan mengizinkannya hanya dari alamat IP tertentu.

Metode 1: Mengedit sshd_config

     

  1. Buka file konfigurasi
   sudo nano /etc/ssh/sshd_config
     

  1. Tambahkan alamat IP yang diizinkan ke AllowUsers
   AllowUsers username@192.168.1.100
     

  1. Restart layanan SSH
   sudo systemctl restart ssh

Metode 2: Mengatur Firewall (UFW)

     

  1. Tentukan alamat IP yang diizinkan untuk koneksi SSH
   sudo ufw allow from 192.168.1.100 to any port 22
     

  1. Blokir koneksi SSH lainnya
   sudo ufw deny 22

Q5: Bagaimana cara mengubah waktu timeout koneksi SSH?

Jika sesi SSH terputus setelah waktu tertentu, Anda dapat mengatasinya dengan mengubah pengaturan.

Pengaturan Sisi Klien

     

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

Pengaturan Sisi Server

     

  1. Edit sshd_config
   sudo nano /etc/ssh/sshd_config
     

  1. Tambahkan/ubah berikut ini
   ClientAliveInterval 60
   ClientAliveCountMax 3
     

  1. Restart layanan SSH
   sudo systemctl restart ssh

Ringkasan

Pada bagian ini, kami telah memperkenalkan pertanyaan umum tentang SSH dan solusinya. Ketika masalah muncul, penting untuk mengidentifikasi penyebabnya dengan memeriksa log.

Solusi jika koneksi SSH ditolak
Perubahan port default dan metode koneksi yang tepat
Daftar periksa jika otentikasi kunci publik tidak berfungsi
Cara mengizinkan koneksi SSH hanya dari alamat IP tertentu
Pengaturan untuk mencegah timeout SSH

9. Kesimpulan

Artikel ini telah menjelaskan secara rinci tentang pengaturan dan penggunaan SSH di Ubuntu, mulai dari dasar hingga tingkat lanjut. Di sini, kami akan meninjau poin-poin penting dan memperkenalkan sumber daya untuk pembelajaran lebih lanjut.

Ringkasan Poin Penting Artikel Ini

1. Dasar dan Cara Kerja SSH

     

  • SSH adalah protokol untuk melakukan koneksi jarak jauh secara aman.
  •  

  • Data dienkripsi, sehingga lebih aman daripada Telnet atau FTP.
  •  

  • Ada dua metode otentikasi: Otentikasi Kata Sandi dan Otentikasi Kunci Publik.

2. Instalasi Server SSH di Ubuntu

     

  • Instal OpenSSH dengan sudo apt install openssh-server.
  •  

  • Periksa status layanan dengan systemctl status ssh.
  •  

  • Izinkan akses dengan menjalankan sudo ufw allow ssh di UFW (firewall).

3. Konfigurasi Koneksi SSH

     

  • Koneksi jarak jauh dengan ssh username@alamat_IP_server.
  •  

  • Keamanan meningkat jika menggunakan otentikasi kunci publik.
  •  

  • Otentikasi kata sandi dapat dinonaktifkan di pengaturan sshd_config.

4. Pemecahan Masalah SSH

     

  • Periksa apakah layanan berjalan (systemctl status ssh).
  •  

  • Saat port diubah, terhubung dengan ssh -p 2222 username@IP.
  •  

  • Sesuaikan izin file ~/.ssh/authorized_keys dengan benar.

5. Penguatan Keamanan SSH

     

  • Nonaktifkan otentikasi kata sandi dan gunakan otentikasi kunci publik.
  •  

  • Ubah nomor port SSH (contoh: 2222).
  •  

  • Instal Fail2Ban untuk mencegah serangan *brute-force*.
  •  

  • Izinkan hanya alamat IP tertentu untuk membatasi akses tidak sah.

6. Pertanyaan Utama yang Terjawab di FAQ

     

  • “Koneksi SSH ditolak” → Periksa status server dan pengaturan UFW.
  •  

  • “Otentikasi kunci publik tidak berfungsi” → Periksa izin kunci dan sshd_config.
  •  

  • “Mencegah timeout SSH” → Ubah pengaturan ClientAliveInterval.

Sumber Daya untuk Pembelajaran Lebih Lanjut

Untuk memahami lebih dalam tentang pengaturan SSH, manfaatkan sumber daya berikut:

📚 Dokumentasi Resmi

🛠 Alat Terkait

🎥 Video yang Direkomendasikan

     

  • Cari “Ubuntu SSH pengaturan” di YouTube untuk menemukan banyak video tutorial untuk pemula.

作成した動画を友だち、家族、世界中の人たちと共有…

Langkah Selanjutnya

Setelah memahami dasar-dasar SSH dari artikel ini, disarankan untuk menguasai keterampilan lanjutan seperti berikut:

Manajemen Otomatis SSH menggunakan Ansible

     

  • Jika Anda memiliki beberapa server, Anda dapat mengotomatiskan manajemen jarak jauh menggunakan Ansible melalui SSH.

SSH Tunneling dan Port Forwarding

     

  • Anda dapat menggunakan SSH untuk membuat koneksi desktop jarak jauh yang aman atau menggunakannya seperti VPN.

Pemantauan Log SSH dan Penguatan Keamanan

     

  • Pelajari cara memanfaatkan fail2ban dan logwatch untuk memantau akses tidak sah secara *real-time*.

Penutup

Terima kasih telah membaca artikel ini sampai selesai! 🎉
Dengan mengkonfigurasi SSH dengan benar di Ubuntu, Anda dapat secara signifikan meningkatkan efisiensi manajemen jarak jauh dan keamanan.

Untuk topik yang lebih mendalam seperti “teknik SSH canggih yang berguna” atau “penguatan keamanan server lebih lanjut”, harap gunakan ini untuk pembelajaran Anda di masa mendatang!

Selamat menikmati SSH yang nyaman! 🖥️🔐