SSH İçin 2FA (İki Aşamalı Doğrulama) 🔐
SSH anahtarınızı çaldırsanız bile, telefonunuzdaki kod olmadan kimsenin sunucuya girememesini sağlayın. Bu rehberde Google Authenticator kullanarak SSH güvenliğini en üst seviyeye çıkaracağız.
1. Kurulum
Gerekli PAM modülünü kuralım:
2. 2FA'yı Aktif Etme
Bu komutu kendi kullanıcınızla (root olmayan) çalıştırın:
Size soracağı sorulara şu cevapları verin:
- Do you want authentication tokens to be time-based? ->
y(Evet) - QR Kodu: Ekranda kocaman bir QR kod çıkacak. Bunu telefonunuzdaki Google Authenticator veya Authy uygulamasına okutun.
- Secret Key & Recovery Codes: Bu kodları güvenli bir yere kaydedin! (Telefonunuz kaybolursa sunucuya girmek için lazım olur).
- Update the .google_authenticator file? ->
y(Ayarları kaydet) - Disallow multiple uses of the same authentication token? ->
y(Aynı kodu iki kere kullanamasınlar - Replay Attack koruması) - Increase the time-skew window? ->
n(Hayır, saatimiz senkronize kalsın) - Enable rate-limiting? ->
y(Evet, brute-force koruması)
3. SSHD ve PAM Yapılandırması
Şimdi SSH servisine "Girişte bu modülü kullan" diyeceğiz.
A) PAM Ayarı
Dosyayı açın:
En alta şu satırı ekleyin (veya @include common-auth satırını bulup onun altına ekleyin):
B) SSHD Ayarı
SSH Config dosyasını açın:
Şu ayarı bulun ve yes yapın (Yoksa ekleyin):
KbdInteractiveAuthentication yes
# Not: Bazı eski sürümlerde "ChallengeResponseAuthentication yes" olabilir.
Eğer SSH Anahtarı kullanıyorsanız, hem anahtar hem de şifre istemesi için şunu ekleyin (Dosyanın en altına):
4. Servisi Yeniden Başlatma
Ayarları uygulayalım:
⚠️ ÇOK ÖNEMLİ UYARI: Şu anki terminal penceresini SAKIN KAPATMAYIN! Yeni bir terminal açıp bağlanmayı deneyin. Eğer hata yapıldıysa mevcut pencereden düzeltebilirsiniz. Kapatırsanız sunucu dışarıda kalırsınız!
5. Bağlantı Testi
Yeni bir terminal açın ve bağlanmayı deneyin:
Süreç şöyle işlemeli:
- Önce SSH anahtarınızı doğrular (şifre sormaz).
- Ardından
Verification code:diye sorar. - Telefondaki 6 haneli kodu girersiniz.
- Giriş Başarılı! 🎉