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
- Edit fail
sshd_config:
sudo nano /etc/ssh/sshd_config
- Ubah (atau tambahkan) tetapan berikut:
PasswordAuthentication no
PubkeyAuthentication yes
- 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
- Buka fail
sshd_config:
sudo nano /etc/ssh/sshd_config
- Ubah nombor port (contoh, tukar kepada 2222):
Port 2222
- Benarkan port baru melalui firewall:
sudo ufw allow 2222/tcp
- Mulakan semula perkhidmatan SSH:
sudo systemctl restart ssh
- 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
- Buka fail
sshd_config:
sudo nano /etc/ssh/sshd_config
- Ubah tetapan berikut:
PermitRootLogin no
- 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
- Pasang Fail2Ban:
sudo apt install fail2ban -y
- Salinasi lalai:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Edit
jail.local:
sudo nano /etc/fail2ban/jail.local
- 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.
- Mulakan semula Fail2Ban:
sudo systemctl restart fail2ban
- 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. 🚀



