Petua Pelayan Rabu — 22 Julai 2026
Jika anda menguruskan lebih daripada segelintir pelayan Linux, anda mungkin pernah merasai kesakitannya. Kunci SSH bertaburan di stesen kerja, akaun kongsi terapung antara ahli pasukan dan satu kata laluan akar kecemasan yang ditulis pada nota melekit. Pada tahun 2026, dengan armada pelayan yang semakin meningkat dan ancaman keselamatan yang semakin berkembang, mengurus akses SSH pada skala bukan sahaja amalan yang baik — ia adalah kemahiran kelangsungan hidup.
Berikut ialah panduan praktikal untuk pengurusan akses SSH yang menskalakan daripada 5 pelayan kepada 500.
🔑 1. Berhenti Menggunakan Kata Laluan. Serius.
Pengesahan SSH berasaskan kata laluan harus menjadi perkara pertama yang anda lumpuhkan pada mana-mana pelayan baharu. Inilah sebabnya:
- Serangan brute-force tanpa henti (semak auth.log anda — saya akan tunggu)
- Kata laluan dikongsi, ditulis dan dilupakan
- Tiada jejak audit untuk siapa yang benar-benar log masuk
Pembetulan: Pengesahan kunci sahaja dengan kunci Ed25519 yang dilindungi frasa laluan.
```
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server
```
Kemudian lumpuhkan pengesahan kata laluan dalam `/etc/ssh/sshd_config`:
```
sudo sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/^PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl mulakan semula sshd
```
Kekunci Ed25519 lebih pantas, lebih kecil dan lebih selamat daripada RSA 4096. Bendera `-a 100` meningkatkan pusingan KDF, menjadikan pengekstrakan brute-force dengan ketara lebih sukar jika kunci anda pernah dicuri.
🏰 2. Corak Hos Benteng
Untuk persekitaran dengan berbilang pelayan merentas rangkaian terpencil, akses SSH terus kepada setiap hos adalah mimpi ngeri pengurusan. Masukkan hos benteng (juga dipanggil hos lompat).
Daripada: `komputer riba → pelayan1, pelayan2, pelayan3... pelayan50`
Anda mendapat: `komputer riba → benteng → pelayan1, pelayan2, pelayan3... pelayan50`
Titik tercekik tunggal ini bermaksud satu tempat untuk mengaudit log akses, satu titik masuk yang dikeraskan untuk dipantau, dan tidak perlu setiap pelayan mempunyai IP awam.
Konfigurasikan SSH untuk menggunakan benteng melalui `~/.ssh/config`:
```
Hos *.internal.corp
Pentadbir pengguna
ProxyJump bastion.corp
Fail Identiti ~/.ssh/id_ed25519
ServerAliveInterval 60
Hos benteng.corp
Nama hos 203.0.113.10
Pentadbir pengguna
Fail Identiti ~/.ssh/id_ed25519
```
Kini `ssh server42.internal.corp` terowong telus melalui benteng.
👥 3. Pengurusan Utama untuk Pasukan
Kunci yang dikongsi ialah anti-corak. Apabila seseorang meninggalkan pasukan, anda perlu memutarkan kunci pada setiap pelayan. Sebaliknya:
Pilihan A: Pihak Berkuasa Sijil SSH (gred perusahaan, digunakan di Netflix & GitHub)
- Sediakan pasangan kekunci SSH CA yang menandatangani kunci pengguna
- Konfigurasikan setiap pelayan untuk mempercayai kunci awam CA
- Pengguna mendapat kunci yang ditandatangani dengan tarikh luput
- Kekunci tamat tempoh ditolak secara automatik
```
ssh-keygen -t ed25519 -f ~/.ssh/user_ca -C "SSH CA Key"
Tambahkan ke /etc/ssh/sshd_config pada setiap pelayan:
TrustedUserCAKeys /etc/ssh/user_ca.pub
Tandatangani kunci pengguna dengan tamat tempoh 1 tahun
ssh-keygen -s userca -I "nama pengguna" -n "nama pengguna" -V "+52w" ~/.ssh/ided25519.pub ```Pilihan B: Direktori Kunci Dibenarkan (lebih mudah untuk pasukan kecil)
```bash
Dalam sshd_config
AuthorizedKeysFile .ssh/authorizedkeys .ssh/authorizedkeys.d/%u
Setiap ahli pasukan menguruskan fail mereka sendiri
mkdir -p ~/.ssh/authorized_keys.d/ echo "ssh-ed25519 AAAA..." > ~/.ssh/authorized_keys.d/$(whoami) ```📋 4. Audit Segalanya
Walaupun dengan pengurusan kunci yang sempurna, anda perlu tahu siapa yang mengakses apa dan bila.
Dayakan pengelogan SSH verbose:
```
Dalam /etc/ssh/sshd_config
LogLevel VERBOSE
Log cap jari kunci yang digunakan, bukan hanya nama pengguna
```
Majukan log pengesahan ke SIEM pusat atau pelayan log. Pantau untuk:
- Percubaan pengesahan gagal (penunjuk kekuatan kasar)
- Pengesahan dengan cap jari kunci yang tidak dijangka
- Log masuk dari julat IP luar biasa atau jam luar biasa
Perintah audit pantas:
```bash
10 log masuk terakhir dengan IP
terakhir -10
Percubaan gagal baru-baru ini
grep "Kata laluan gagal" /var/log/auth.log | ekor -5 ```🔐 5. Senarai Semak Pengerasan Lanjutan
| Tetapan | Nilai | Mengapa |
|---|---|---|
| PermitRootLogin | larang-kata laluan | Root hanya boleh log masuk dengan pengesahan kunci |
| MaxAuthTries | 3 | Hadkan percubaan meneka kata laluan |
| ClientAliveInterval | 300 | Menggugurkan sambungan melahu selepas 5 min |
| ClientAliveCountMax | 2 | Dua ping terlepas = putuskan sambungan |
| BenarkanPengguna | admin emirul | Hanya pengguna tertentu boleh SSH |
| MaxSessions | 10 | Menghalang serangan keletihan sesi |
Mulakan semula SSH selepas perubahan dan sentiasa pastikan terminal kedua terbuka semasa menguji — satu perubahan konfigurasi yang buruk boleh mengunci anda keluar secara kekal.
🎯 Kesimpulan
Pengurusan akses SSH tidak perlu menyakitkan. Mulakan dengan asas: lumpuhkan pengesahan kata laluan, gunakan kekunci Ed25519 dengan frasa laluan dan laksanakan hos benteng untuk pembahagian rangkaian. Apabila infrastruktur anda berkembang, lulus kepada sijil SSH untuk tamat tempoh automatik dan menandatangani berpusat.
Masa terbaik untuk membetulkan persediaan SSH anda ialah sebelum pelanggaran. Masa kedua terbaik ialah hari ini.
💬 0 Comments