Admin erişiminde gerçek risk çoğu zaman “parola zayıf mı?” değil; phishing ve credential reuse. SSH tarafında da benzer: private key çalınırsa ya da agent forwarding yanlış kullanılırsa, lateral movement çok hızlı olur.
Buradaki pratik hamle: OpenSSH’nin security key desteğini kullanarak, admin erişimini FIDO2 anahtar + PIN + dokunma onayına bağlamak. Yani “private key dosyası” tek başına yetmesin.
Ön koşullar ve sınırlar
- Client tarafında OpenSSH’nin “sk” (security key) desteği olmalı.
- FIDO2 security key (YubiKey vb.) gerekiyor.
- Bazı remote/otomasyon senaryolarında “dokunma” şartı nedeniyle dikkatli plan gerekir.
1) Client: FIDO2 destekli SSH anahtarı üret
Temel komut:
ssh-keygen -t ed25519-sk -f ~/.ssh/id_ed25519_sk_admin -C "admin-fido2"
Benim önerdiğim opsiyonlar:
- PIN zorunlu olsun (verify required)
- Resident key kullanacaksan bilinçli seç (kaybolma riskini yönet)
Örnek:
ssh-keygen -t ed25519-sk \
-O verify-required \
-f ~/.ssh/id_ed25519_sk_admin \
-C "admin-fido2"
Bu, oturum açarken genellikle PIN + dokunma ister.
2) Server: public key’i ekle
Sunucuda ilgili kullanıcı için:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
cat id_ed25519_sk_admin.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
3) sshd hardening: adım adım sıkılaştır
/etc/ssh/sshd_config tarafında ben kademeli giderim:
- Önce FIDO2 key ile login’i doğrula
- Sonra password’u kapat
- Sonra root login’i kapat / kısıtla
Örnek (temsilî):
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin no
AuthenticationMethods publickey
Ardından:
sudo systemctl reload sshd
4) Operasyon: break‑glass modelini bozmadan tasarla
Benim sahada önerdiğim break‑glass ilkeleri:
- Break‑glass hesabı ayrı ve çok az kişide olsun
- Erişim “normal gün”de kapalı (ör. firewall allowlist + geçici kural)
- Audit: her kullanım kaydı ayrı loglanır
- Düzenli tatbikat: yılda 2–4 kez kontrollü test
FIDO2 için ek pratik:
- Anahtar kaybolursa: ikinci anahtar (spare) ve onay süreci
- PIN unutulursa: sıfırlama planı (çoğu anahtar reset ister)
5) Day‑2: agent forwarding ve sudo riskleri
FIDO2, girişte çok güçlüdür ama şunlar hâlâ risk:
ForwardAgent yesile anahtarın başka hop’larda kullanılabilmesi- Sunucuda kötü niyetli süreçlerin
sudoüzerinden genişlemesi
Benim pratik setim:
- Admin bastion/management host kullan, forwarding’i default kapat
AllowUsers/AllowGroupsile erişimi daraltsudologlarını merkezi topla ve uyarı üret
6) Hızlı troubleshooting
Sık görülenler:
- Client OpenSSH “sk” desteklemiyor → OpenSSH güncelle / doğru paket
- Güvenlik anahtarı algılanmıyor → USB yetkisi / udev / macOS izinleri
- PIN prompt gelmiyor →
-O verify-requiredile yeniden üret
Sonuç
SSH + FIDO2; admin erişimini “dosya anahtarı çalındı mı?” riskinden çıkarıp kullanıcı etkileşimi ile güçlendirir. Doğru kurgulanırsa hem phishing dayanımı artar hem de break‑glass refleksin bozulmaz. Anahtar nokta: rollout’u kademeli yap, otomasyon hesaplarını ayrı modelle yönet, ve tatbikatı süreç haline getir.