Menggunakan SSH pada Ubuntu! Panduan Komprehensif untuk Sambungan, Perubahan Port, dan Pengesahan Kunci Awam

目次

1. Pengenalan

Dengan menggunakan SSH pada Ubuntu, anda boleh mengakses dan mengurus pelayan atau PC anda secara selamat dari jauh. Panduan ini menjelaskan segala-galanya dari asas SSH hingga pemasangan pelayan SSH pada Ubuntu, langkah keselamatan, dan penyelesaian masalah. Ia direka untuk pemula dan mudah difahami.

Apa itu SSH?

SSH (Secure Shell) ialah protokol yang membenarkan sambungan jauh yang selamat melalui rangkaian. Berbeza dengan Telnet atau FTP tradisional, SSH menyulitkan data untuk mengurangkan risiko penyadapan dan pengubahsuaian.

Kes Penggunaan Utama SSH pada Ubuntu

SSH biasanya digunakan pada Ubuntu untuk tujuan berikut:

  • Pengurusan Pelayan Jauh : Mengendalikan pelayan Ubuntu dari lokasi jauh.
  • Pemindahan Fail : Memindahkan fail secara selamat menggunakan SCP atau SFTP.
  • Pemajuan Port : Menubuhkan sambungan jauh yang selamat.

Apa yang Anda Akan Pelajari dalam Panduan Ini

  • Konsep asas dan cara kerja SSH
  • Cara memasang pelayan SSH pada Ubuntu
  • Tetapan sambungan SSH dan penyelesaian masalah
  • Langkah keselamatan untuk SSH
年収訴求

2. Konsep Asas SSH

Untuk menggunakan SSH dengan berkesan, penting untuk memahami konsep asasnya. Bahagian ini menjelaskan cara SSH berfungsi dan kaedah pengesahan yang berbeza.

Cara SSH Berfungsi

SSH ialah protokol yang menubuhkan sambungan selamat antara klien dan pelayan. Secara lalai, ia menggunakan port TCP 22 untuk komunikasi yang disulitkan.

Ciri-ciri Utama

  • Log Masuk Jauh : Menjalankan perintah pada pelayan.
  • Pemindahan Fail : Menghantar data secara selamat menggunakan SCP atau SFTP.
  • Pemajuan Port : Menyambung ke perkhidmatan lain melalui SSH.

Kaedah Pengesahan SSH

SSH kebanyakannya menyokong dua kaedah pengesahan:

Pengesahan Kata Laluan

  • Log masuk menggunakan nama pengguna dan kata laluan.
  • Mudah digunakan tetapi terdedah kepada serangan brute force.

Pengesahan Kunci Awam

  • Pengesahan menggunakan pasangan kunci awam dan peribadi.
  • Lebih selamat dan disarankan berbanding pengesahan kata laluan.

Kelebihan SSH

  • Penyulitan Data : Melindungi komunikasi daripada disadap.
  • Pengurusan Jauh yang Mudah : Boleh diakses dari mana-mana.
  • Keselamatan Dipertingkat : Membantu mencegah akses tidak dibenarkan.

3. Memasang Pelayan SSH pada Ubuntu

Untuk menggunakan SSH pada Ubuntu, anda perlu memasang pelayan OpenSSH. Bahagian ini menjelaskan langkah pemasangan dan konfigurasi asas.

Memasang Pelayan OpenSSH

Anda boleh memasang pelayan OpenSSH pada Ubuntu dengan perintah berikut:

sudo apt update
sudo apt install openssh-server

Selepas pemasangan, periksa sama ada perkhidmatan SSH sedang berjalan:

sudo systemctl status ssh

Memulakan dan Memeriksa Perkhidmatan SSH

Untuk memulakan atau menghentikan perkhidmatan SSH secara manual, gunakan perintah berikut:

# Start SSH
sudo systemctl start ssh

# Enable SSH to start automatically on reboot
sudo systemctl enable ssh

# Stop SSH
sudo systemctl stop ssh

Mengkonfigurasi UFW (Uncomplicated Firewall)

Jika UFW diaktifkan secara lalai, sambungan SSH mungkin disekat. Benarkan akses SSH dengan menjalankan:

sudo ufw allow ssh
sudo ufw enable

4. Mengkonfigurasi Sambungan SSH

Untuk menggunakan SSH dengan selamat, konfigurasi yang betul adalah penting. Bahagian ini menjelaskan cara menyiapkan pengesahan kunci awam.

Menjana Pasangan Kunci

Di sisi klien, jalankan perintah berikut untuk membuat pasangan kunci awam dan peribadi:

ssh-keygen -t rsa -b 4096

Secara lalai, kunci peribadi disimpan dalam ~/.ssh/id_rsa, dan kunci awam disimpan dalam ~/.ssh/id_rsa.pub.

Menyalin Kunci Awam ke Pelayan

Pindahkan kunci awam yang dijana ke pelayan SSH:

ssh-copy-id username@server-ip

Sebagai alternatif, salin kunci secara manual menggunakan SCP:

scp ~/.ssh/id_rsa.pub username@server-ip:~/

Di pelayan, pindahkan kunci awam ke direktori yang betul:

mkdir -p ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/id_rsa.pub

Menyunting Fail sshd_config

Tingkatkan keselamatan dengan mengubah suai fail konfigurasi SSH:

sudo nano /etc/ssh/sshd_config

Kemas kini tetapan berikut:

# Disable password authentication (enable public key authentication only)
PasswordAuthentication no

# Disable root login
PermitRootLogin no

# Change the default SSH port (example: 2222)
Port 2222

Selepas membuat perubahan, mulakan semula perkhidmatan SSH:

sudo systemctl restart ssh

5. Menyambung ke Pelayan SSH

Selepas pelayan SSH disediakan, anda perlu menyambungkannya dari mesin klien. Bahagian ini menerangkan kaedah sambungan SSH asas dan pengendalian perubahan port.

Arahan Sambungan SSH Asas

Untuk menyambung ke pelayan SSH dari klien, gunakan:

ssh username@server-ip

Sebagai contoh, jika IP pelayan ialah 192.168.1.10 dan nama pengguna ialah ubuntu, masukkan:

ssh ubuntu@192.168.1.10

Pada sambungan pertama, anda akan melihat prompt pengesahan sidik jari. Taip “yes” untuk menerima dan teruskan.

Menyambung dengan Port Tersuai

Jika port lalai (22) telah diubah, nyatakan port menggunakan pilihan -p:

ssh -p 2222 ubuntu@192.168.1.10

Menyambung dengan Kunci Persendirian

Jika menggunakan pengesahan kunci awam, nyatakan kunci persendirian dengan pilihan -i:

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

Menjalankan Arahan Jauh melalui SSH

Anda boleh melaksanakan arahan jauh tanpa log masuk ke pelayan secara interaktif:

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

Ini berguna untuk automasi dan pengurusan jauh.

Memindahkan Fail dengan SCP

Gunakan SSH untuk memindahkan fail antara PC tempatan dan pelayan jauh.

Dari Tempatan ke Jauh

scp filename username@server-ip:/remote/directory

Contoh:

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

Dari Jauh ke Tempatan

scp username@server-ip:/remote/file ./local/directory

Contoh:

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

Mengurus Fail dengan SFTP

Gunakan SFTP untuk pengurusan fail melalui SSH:

sftp ubuntu@192.168.1.10

Selepas disambung, anda boleh menggunakan arahan seperti:

ls        # List files
cd        # Change directory
put file  # Upload file from local to remote
get file  # Download file from remote to local
exit      # Exit SFTP session

6. Penyelesaian Masalah Sambungan SSH

Masalah sambungan SSH adalah biasa. Bahagian ini meliputi masalah tipikal dan penyelesaiannya.

Ralat Sambungan SSH Biasa dan Penyelesaian

Jika SSH gagal menyambung, pertimbangkan punca-punca berikut:

1. Pelayan SSH Tidak Berjalan

Semak jika pelayan SSH aktif:

sudo systemctl status ssh

Penyelesaian:

  • Jika pelayan tidak berjalan, mulakan dengan:
sudo systemctl start ssh
  • Pastikan SSH bermula secara automatik semasa reboot:
sudo systemctl enable ssh

2. Firewall (UFW) Menghalang SSH

Jika UFW (Uncomplicated Firewall) diaktifkan, ia mungkin menghalang akses SSH.

Penyelesaian:

  • Semak tetapan UFW semasa:
sudo ufw status
  • Benarkan sambungan SSH:
sudo ufw allow ssh

(Jika menggunakan port tersuai, jalankan sudo ufw allow <port>)

  • Mulakan semula UFW:
sudo ufw reload

3. Nombor Port SSH Telah Diubah

Jika SSH berjalan pada port berbeza, pastikan anda nyatakan port yang betul semasa menyambung.

Penyelesaian:

  • Sahkan port SSH yang dikonfigurasi:
sudo grep Port /etc/ssh/sshd_config
  • Gunakan port yang betul semasa menyambung:
ssh -p 2222 username@server-ip

4. Keizinan Kunci SSH Tidak Betul

Keizinan fail yang tidak betul untuk kunci SSH boleh menyebabkan kegagalan pengesahan.

Penyelesaian:

  • Pastikan kunci persendirian mempunyai keizinan yang betul:
chmod 600 ~/.ssh/id_rsa
  • Pastikan fail kunci authorized ditetapkan dengan betul:
chmod 644 ~/.ssh/authorized_keys

5. Memeriksa Log SSH

Untuk mendiagnosis masalah SSH, semak log:

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

Untuk pemantauan log masa nyata:

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

7. Meningkatkan Keselamatan SSH

SSH ialah alat akses jauh yang kuat, tetapi tanpa langkah keselamatan yang betul, ia boleh menjadi sasaran untuk akses tanpa kebenaran dan serangan brute‑force. Bahagian ini menerangkan konfigurasi yang disyorkan untuk meningkatkan keselamatan SSH.

1. Lumpuhkan Pengesahan Kata Laluan dan Gunakan Pengesahan Kunci Awam

Secara lalai, SSH membenarkan pengesahan kata laluan, yang meningkatkan risiko serangan brute‑force. Beralih kepada pengesahan kunci awam meningkatkan keselamatan.

Langkah‑langkah

  1. Edit fail sshd_config:
sudo nano /etc/ssh/sshd_config
  1. Ubah (atau tambahkan) tetapan berikut:
PasswordAuthentication no
PubkeyAuthentication yes
  1. Mulakan semula perkhidmatan SSH:
sudo systemctl restart ssh

Ini memastikan SSH hanya menerima pengesahan melalui kunci awam. Pastikan anda menyiapkan pengesahan kunci awam sebelum menerapkan perubahan ini.

2. Tukar Port SSH Lalai

Menggunakan port SSH lalai (22) menjadikannya sasaran mudah untuk serangan. Menukar port meningkatkan keselamatan.

Langkah‑langkah

  1. Buka fail sshd_config:
sudo nano /etc/ssh/sshd_config
  1. Ubah nombor port (contoh, tukar kepada 2222):
Port 2222
  1. Benarkan port baru melalui firewall:
sudo ufw allow 2222/tcp
  1. Mulakan semula perkhidmatan SSH:
sudo systemctl restart ssh
  1. Uji port baru:
ssh -p 2222 username@server-ip

3. Lumpuhkan Log Masuk Root

Secara lalai, pengguna root boleh log masuk melalui SSH, yang menimbulkan risiko keselamatan. Disarankan hanya membenarkan pengguna tertentu untuk menyambung.

Langkah‑langkah

  1. Buka fail sshd_config:
sudo nano /etc/ssh/sshd_config
  1. Ubah tetapan berikut:
PermitRootLogin no
  1. Mulakan semula perkhidmatan SSH:
sudo systemctl restart ssh

4. Cegah Serangan Brute‑Force dengan Fail2Ban

Fail2Ban memantau percubaan log masuk dan menyekat alamat IP selepas beberapa percubaan pengesahan yang gagal.

Pemasangan dan Konfigurasi

  1. Pasang Fail2Ban:
sudo apt install fail2ban -y
  1. Salinasi lalai:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  1. Edit jail.local :
sudo nano /etc/fail2ban/jail.local
  1. Ubah tetapan di bawah [sshd] :
[sshd]
enabled = true
maxretry = 5
bantime = 600
findtime = 600
  • maxretry : Bilangan maksimum percubaan log masuk yang dibenarkan.
  • bantime : Tempoh (dalam saat) IP akan disekat.
  • findtime : Tetingkap masa (dalam saat) untuk mengira percubaan yang gagal.
  1. Mulakan semula Fail2Ban:
sudo systemctl restart fail2ban
  1. Periksa status Fail2Ban:
sudo fail2ban-client status sshd

8. Soalan Lazim (FAQ)

Bahagian ini menjawab soalan dan isu biasa ketika menggunakan SSH.

S1: Mengapa sambungan SSH ditolak?

Punca yang mungkin:

  • Perkhidmatan SSH tidak berjalan → Periksa dengan sudo systemctl status ssh
  • Firewall menyekat SSH → Benarkan SSH dengan sudo ufw allow ssh
  • Menggunakan port khusus → Sambung dengan ssh -p <port> username@server-ip

S2: Bagaimana menukar port lalai SSH?

Ubah fail sshd_config:

sudo nano /etc/ssh/sshd_config

Tukar port:

Port 2222

Kemudian mulakan semula SSH:

sudo systemctl restart ssh

S3: Bagaimana membenarkan hanya IP tertentu mengakses SSH?

Ubah tetapan firewall:

sudo ufw allow from 192.168.1.100 to any port 22

Atau gunakan sshd_config:

AllowUsers username@192.168.1.100

9. Kesimpulan

Panduan ini merangkumi segala-galanya dari asas SSH hingga penambahbaikan keselamatan. Berikut ialah perkara utama yang perlu diingat:

  • Gunakan pengesahan kunci awam dan bukannya kata laluan.
  • Tukar port SSH lalai untuk keselamatan yang lebih baik.
  • Lumpuhkan log masuk root untuk mengelakkan akses tanpa kebenaran.
  • Gunakan Fail2Ban untuk menyekat serangan brute‑force.
  • Pantau log SSH untuk penyelesaian masalah.

Sumber Tambahan

Dengan mengikuti amalan terbaik ini, anda boleh mengekalkan persekitaran SSH yang selamat dan cekap. 🚀