Sunucu güvenliği özellikle banka, finans ya da kurumsal ortamlarda çalışan sistem yöneticileri için en kritik konuların başında gelir. Çoğu zaman güvenlik ihlalleri tek katmanlı şifre koruması yüzünden gerçekleşir.
Bir saldırgan kullanıcı şifresini ele geçirdiğinde sistemlere doğrudan erişebilir. İşte tam bu noktada İki Faktörlü Kimlik Doğrulama (Two-Factor Authentication – 2FA) devreye girer.
2FA kullanıcı adı ve şifrenin yanında ikinci bir doğrulama katmanı daha ekler. Bu doğrulama genellikle telefonunuzdaki bir uygulama tarafından üretilen tek kullanımlık şifre (OTP/TOTP) ile yapılır. Yani saldırganın yalnızca şifrenizi bilmesi yetmez giriş yapabilmesi için telefonunuzdaki geçici kodu da bilmesi gerekir.
Linux sistemlerde SSH’ye (Secure Shell) 2FA eklemenin en yaygın yolu Google Authenticator modülünü kullanmaktır.
Bu makalemde Google Authenticator ile SSH oturumlarınıza nasıl ikinci güvenlik katmanı ekleyebileceğinizi adım adım göstereceğiz.

Google Authenticator Nedir?
Google Authenticator açık kaynaklı bir uygulamadır ve kullanıcıya zaman tabanlı tek kullanımlık şifreler (TOTP) üretir. Bu kodlar:
- Her 30 saniyede bir yenilenir.
- Sadece kısa bir süreliğine geçerlidir.
- Mobil cihaz ya da bilgisayar üzerinde üretilebilir.
Avantajları:
- Ekstra yazılım veya internet bağlantısı gerekmez.
- Hem Android hem iOS cihazlarda kullanılabilir.
- PAM (Pluggable Authentication Module) yapısı sayesinde Linux ile kolayca entegre olur.
- Şifre sızıntılarına karşı ek bir güvenlik katmanı sağlar.
Kısacası Google Authenticator ile SSH girişleriniz iki adımlı bir sürece dönüşür. Önce şifre ardından uygulamanın ürettiği geçici doğrulama kodu.
Kurulum Öncesi Hazırlık
Kuruluma başlamadan önce bilmeniz gereken birkaç nokta var:
- SSH erişimi aktif olmalı: Sunucunuza root veya sudo yetkili bir kullanıcıyla bağlanabiliyor olmalısınız.
- Paket yöneticiniz (RedHat tabanlı sistemlerde
dnf, Debian tabanlılardaapt) güncel olmalı. - Yapılandırma sırasında SSH bağlantınız kesilebilir. Bu yüzden mümkünse sunucuya fiziksel erişim imkânınız olsun ya da yeni bir terminal oturumu açıp test edin.
Google Authenticator PAM Modülünü Kurma
RedHat Tabanlı Sistemler (RHEL, CentOS Stream, Rocky Linux, AlmaLinux)
Öncelikle EPEL (Extra Packages for Enterprise Linux) deposunu etkinleştiriniz.
sudo dnf install epel-release -y
Daha sonra gerekli paketleri kurulur.
sudo dnf install google-authenticator qrencode-libs -y
Debian Tabanlı Sistemler (Ubuntu, Debian, Mint)
Google Authenticator PAM modülünü şu komutla yükleyiniz.
sudo apt install libpam-google-authenticator -y
Kullanıcı İçin Gizli Anahtar ve Acil Kodlar Oluşturma
Kurulumdan sonra güvenli hale getirmek istediğiniz kullanıcı ile oturum açın ve şu komutu çalıştırın:
google-authenticator
Komut size bir dizi soru yöneltecektir:
- Do you want authentication tokens to be time-based (y/n)?
→ Buradayseçin (zaman tabanlı kodlar için). - Do you want me to update your “/home/user/.google_authenticator” file (y/n)?
→yseçin (dosya güncellensin). - Disallow multiple uses of the same token?
→y(her kod bir kere kullanılabilsin). - Do you want to enable rate-limiting?
→y(çok sayıda başarısız denemeyi engeller).
Komut sonunda şunları elde edersiniz:
- Secret Key (Gizli Anahtar) → Bunu Google Authenticator uygulamasına girmeniz gerekir.
- Scratch Codes (Acil Kodlar) → Telefonunuzu kaybederseniz giriş yapabilmeniz için yedek kodlardır. Mutlaka güvenli bir yerde saklayın!
Eğer QR kod görüntülenmezse, uygulamaya secret key’i elle girebilirsiniz.
PAM Yapılandırması
SSH oturumlarında Google Authenticator’ın devreye girmesi için PAM dosyasını düzenleyelim.
sudo nano /etc/pam.d/sshd
Dosyanın en üstüne şunu ekleyiniz.
auth required pam_google_authenticator.so nullok
Eğer sisteminizde SELinux aktifse, .google_authenticator dosyasını doğru bir konuma taşıyın (örn. ~/.ssh/) ve tam yolunu şu şekilde belirtiniz.
auth required pam_google_authenticator.so secret=/home/<kullanıcı>/.ssh/.google_authenticator nullok
SSH Sunucu Yapılandırması
SSH’nin iki faktörlü doğrulama istemesi için yapılandırma dosyasını açınız.
sudo nano /etc/ssh/sshd_config
Aşağıdaki satırların bulunduğundan emin olunuz.
UsePAM yes
ChallengeResponseAuthentication yes
Eğer hem SSH anahtarı hem de 2FA zorunlu olsun istiyorsanız.
AuthenticationMethods publickey,keyboard-interactive
Son olarak SSH servisini yeniden başlatınız.
sudo systemctl restart sshd
Google Authenticator Uygulamasını Ayarlama
Telefonunuza Google Authenticator uygulamasını yükleyin (Android veya iOS).
- Uygulamayı açın →
+→ Enter a setup key seçeneğini seçin. - Komut çıktısında aldığınız secret key’i buraya girin.
Artık uygulama her 30 saniyede bir değişen tek kullanımlık kodlar üretmeye başlayacaktır.
SSH ile Giriş Testi
Kurulumdan sonra SSH ile giriş yaptığınızda şu şekilde bir doğrulama süreci göreceksiniz:
login as: root
Verification code: 746391
Password: ********
Last login: Tue Apr 23 13:58:29 2022 from 172.16.25.125
[root@server ~]#
Artık hem şifre hem de doğrulama kodu olmadan giriş yapmak mümkün değil.
Not: Eğer yalnızca SSH anahtarı (public/private key) ile giriş yapıyorsanız 2FA devreye girmez. İki katmanlı doğrulama yalnızca parola tabanlı girişlerde çalışır.
Alternatif Doğrulama Yöntemleri
Telefon kullanmak istemeyenler için de çözümler mevcut:
- KeePassXC (masaüstü tabanlı TOTP üretici)
- Linux Authenticator App
- Firefox Authenticator eklentisi
Bu sayede mobil cihaz olmadan da doğrulama kodu üretebilirsiniz.
SSH güvenliğini artırmak için en etkili adımlardan biri iki faktörlü kimlik doğrulama eklemektir.
Google Authenticator sayesinde:
- Şifre sızıntıları risk olmaktan çıkar,
- Brute-force saldırıları neredeyse imkânsız hale gelir,
- Sunucularınıza erişim yalnızca sizin cihazınızdan doğrulanabilir.
Kısacası birkaç dakikalık kurulumla sistemlerinizin güvenlik seviyesini ciddi anlamda yükseltebilirsiniz.