Giriş
SSH (Secure Shell) uzak sunucu yönetiminin standart protokolüdür. Parola yerine public key authentication hem güvenliği artırır hem brute-force saldırılarını etkisiz kılar.
Yanlış yapılandırılmış SSH sunucuları botnet taramalarının birincil hedefidir. Bu rehber anahtar üretimi, dağıtımı, sshd hardening ve operasyonel güvenliği kapsar.
OpenSSH hem istemci (ssh) hem sunucu (sshd) araçlarını içerir.
Anahtar Üretimi
ssh-keygen -t ed25519 -C 'user@host' modern ve güvenli Ed25519 anahtarı üretir. RSA için minimum 4096 bit kullanın.
Özel anahtar (~/.ssh/id_ed25519) asla paylaşılmaz; izin 600 olmalıdır. Public key (~/.ssh/id_ed25519.pub) sunucuya eklenir.
ssh-keygen -t ed25519 -C 'deploy@prod'
chmod 600 ~/.ssh/id_ed25519
chmod 700 ~/.sshAnahtar Dağıtımı
ssh-copy-id user@server public key'i ~/.ssh/authorized_keys'e ekler. Manuel: cat id_ed25519.pub >> ~/.ssh/authorized_keys.
authorized_keys izni 600, dizin izni 700 olmalıdır. Her satır bir anahtar; from=, command= kısıtlamaları eklenebilir.
ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@server.example.com
# authorized_keys kısıtlama
from="10.0.0.0/8",no-port-forwarding ssh-ed25519 AAAA...sshd_config Hardening
PasswordAuthentication no parola girişini kapatır. PermitRootLogin no root SSH'ı engeller. PubkeyAuthentication yes anahtar girişini açar.
AllowUsers veya AllowGroups erişimi kısıtlar. MaxAuthTries 3 brute-force'u sınırlar. Port 22 dışı port obscurity sağlar (tek başına yeterli değil).
# /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
AllowUsers deploy admin
MaxAuthTries 3
ClientAliveInterval 300SSH Agent ve Forwarding
ssh-agent özel anahtarı bellekte tutar; passphrase tekrar girilmez. ssh-add anahtar ekler.
Agent forwarding (-A) güvenlik riski taşır; yalnızca güvenilen jump host'larda kullanın. ProxyJump (-J) daha güvenli bastion desenidir.
ssh -J bastion.example.com deploy@app.internal
# ~/.ssh/config
Host app
HostName 10.0.0.5
User deploy
ProxyJump bastionAnahtar Rotasyonu ve İptal
Çalışan ayrıldığında authorized_keys'den satır silin. Periyodik anahtar rotasyonu politika gerektirir.
ssh-keygen -lf authorized_keys fingerprint listeler. Revoke edilen anahtarlar hemen kaldırılmalıdır.
Parola kimlik doğrulamasını tamamen kapatın; fail2ban ek koruma sağlar ama anahtar zorunluluğu esastır.
İzleme ve Audit
/auth.log veya journalctl -u sshd başarısız girişleri kaydeder. Başarısız deneme eşiği aşılınca uyarı kurun.
2FA için google-authenticator PAM modülü eklenebilir; yüksek güvenlik ortamlarında önerilir.
- Ed25519 anahtar kullanın
- Parolayı kapatın
- Root login engelleyin
- AllowUsers tanımlayın
- Düzenli anahtar denetimi
Sonuç
SSH güvenliği doğru anahtar yönetimi ve sshd hardening ile sağlanır. Parola girişini kapatın, anahtarları rotate edin, erişimi AllowUsers ile sınırlayın.
Bastion host ve ProxyJump ile iç ağ erişimini merkezileştirin.