{"id":36620,"date":"2025-12-20T18:41:01","date_gmt":"2025-12-20T15:41:01","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=36620"},"modified":"2025-12-20T18:41:01","modified_gmt":"2025-12-20T15:41:01","slug":"ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/","title":{"rendered":"Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu<\/h2>\n<p>Siber g\u00fcvenlik, g\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda her zamankinden daha kritik bir \u00f6neme sahiptir. \u00d6zellikle sunuculara uzaktan eri\u015fim sa\u011flayan SSH (Secure Shell) gibi protokoller, potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131 nedeniyle hedef haline gelebilir. Varsay\u0131lan olarak yaln\u0131zca parola veya SSH anahtar\u0131 ile kimlik do\u011frulama, belirli senaryolarda yeterli g\u00fcvenli\u011fi sa\u011flamayabilir. \u0130\u015fte bu noktada \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) devreye girer. MFA, bir kullan\u0131c\u0131n\u0131n kimli\u011fini do\u011frulamak i\u00e7in iki veya daha fazla ba\u011f\u0131ms\u0131z kimlik do\u011frulama fakt\u00f6r\u00fc gerektiren bir g\u00fcvenlik sistemidir. Bu makalede, Ubuntu 20.04 i\u015fletim sistemi \u00fczerinde SSH eri\u015fimi i\u00e7in MFA&#8217;n\u0131n nas\u0131l kurulaca\u011f\u0131n\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z.<\/p>\n<h3>\u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Nedir ve Neden \u00d6nemlidir?<\/h3>\n<p>\u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA), bir kullan\u0131c\u0131n\u0131n bir sisteme veya uygulamaya eri\u015fim sa\u011flamak i\u00e7in birden fazla kimlik do\u011frulama t\u00fcr\u00fc sunmas\u0131n\u0131 gerektiren bir g\u00fcvenlik mekanizmas\u0131d\u0131r. Geleneksel olarak, kimlik do\u011frulama genellikle &#8220;bildi\u011finiz bir \u015fey&#8221; (\u00f6rne\u011fin, bir parola) veya &#8220;sahip oldu\u011funuz bir \u015fey&#8221; (\u00f6rne\u011fin, bir SSH anahtar\u0131) olmak \u00fczere tek bir fakt\u00f6re dayan\u0131r. MFA ise bu fakt\u00f6rlerden en az ikisini birle\u015ftirerek g\u00fcvenlik seviyesini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. Bu fakt\u00f6rler genellikle \u015funlard\u0131r:<\/p>\n<p>*   <strong>Bildi\u011finiz bir \u015fey:<\/strong> Parola, PIN, g\u00fcvenlik sorusunun cevab\u0131.<br \/>\n*   <strong>Sahip oldu\u011funuz bir \u015fey:<\/strong> Ak\u0131ll\u0131 telefon (OTP uygulamas\u0131), donan\u0131m anahtar\u0131 (YubiKey), ak\u0131ll\u0131 kart.<br \/>\n*   <strong>Oldu\u011funuz bir \u015fey:<\/strong> Biyometrik veriler (parmak izi, y\u00fcz tan\u0131ma, retina taramas\u0131).<\/p>\n<p>SSH ba\u011flant\u0131lar\u0131nda MFA kullanmak, \u00f6zellikle uzaktan eri\u015filen sunucular i\u00e7in hayati \u00f6neme sahiptir. Bir sald\u0131rgan\u0131n parolan\u0131z\u0131 veya \u00f6zel SSH anahtar\u0131n\u0131z\u0131 ele ge\u00e7irmesi durumunda bile, ikinci fakt\u00f6re (genellikle ak\u0131ll\u0131 telefonunuzdaki bir OTP uygulamas\u0131 taraf\u0131ndan \u00fcretilen tek kullan\u0131ml\u0131k kod) sahip olmad\u0131k\u00e7a sisteme eri\u015fim sa\u011flayamaz. Bu, kaba kuvvet sald\u0131r\u0131lar\u0131na, kimlik av\u0131 sald\u0131r\u0131lar\u0131na ve di\u011fer kimlik bilgisi h\u0131rs\u0131zl\u0131\u011f\u0131 giri\u015fimlerine kar\u015f\u0131 ek bir savunma katman\u0131 olu\u015fturur. Kurumsal ortamlarda ise, PCI DSS, HIPAA, GDPR gibi \u00e7e\u015fitli d\u00fczenleyici uyumluluk standartlar\u0131 da g\u00fc\u00e7l\u00fc kimlik do\u011frulama mekanizmalar\u0131n\u0131 zorunlu k\u0131lmaktad\u0131r ve MFA bu gereksinimleri kar\u015f\u0131lamak i\u00e7in temel bir ara\u00e7t\u0131r. Bu makalede, en yayg\u0131n ve uygulamas\u0131 kolay y\u00f6ntemlerden biri olan Google Authenticator (PAM mod\u00fcl\u00fc arac\u0131l\u0131\u011f\u0131yla) kullanarak SSH i\u00e7in MFA kurulumunu detayland\u0131raca\u011f\u0131z.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Bu kurulum rehberine ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki maddelerin haz\u0131r oldu\u011fundan emin olmal\u0131s\u0131n\u0131z:<\/p>\n<p>*   <strong>Ubuntu 20.04 Sunucusu:<\/strong> SSH eri\u015fimine sahip, g\u00fcncel bir Ubuntu 20.04 i\u015fletim sistemi kurulu bir sunucu.<br \/>\n*   <strong>Sudo Yetkileri:<\/strong> Sunucuda <code>sudo<\/code> komutunu kullanabilen bir kullan\u0131c\u0131 hesab\u0131na sahip olmal\u0131s\u0131n\u0131z.<br \/>\n*   <strong>Temel Linux Bilgisi:<\/strong> Komut sat\u0131r\u0131 kullan\u0131m\u0131 ve temel dosya d\u00fczenleme (<code>nano<\/code> veya <code>vi<\/code> gibi metin d\u00fczenleyiciler) konusunda bilgi sahibi olman\u0131z faydal\u0131 olacakt\u0131r.<br \/>\n*   <strong>SSH \u0130stemcisi:<\/strong> Sunucunuza ba\u011flanmak i\u00e7in bir SSH istemcisi (\u00f6rne\u011fin, Linux\/macOS&#8217;ta terminal, Windows&#8217;ta PuTTY veya PowerShell).<br \/>\n*   <strong>Ak\u0131ll\u0131 Telefon ve Authenticator Uygulamas\u0131:<\/strong> Google Authenticator, Authy, Microsoft Authenticator gibi TOTP (Time-based One-Time Password) destekleyen bir mobil uygulama y\u00fckl\u00fc bir ak\u0131ll\u0131 telefon.<\/p>\n<h3>PAM (Pluggable Authentication Modules) Nedir?<\/h3>\n<p>PAM (Pluggable Authentication Modules), Linux ve Unix benzeri i\u015fletim sistemlerinde kimlik do\u011frulama s\u00fcrecini esnek ve mod\u00fcler bir \u015fekilde y\u00f6netmek i\u00e7in tasarlanm\u0131\u015f bir \u00e7er\u00e7evedir. Geleneksel olarak, bir kullan\u0131c\u0131 sisteme giri\u015f yapmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131nda, kimlik do\u011frulama mant\u0131\u011f\u0131 do\u011frudan oturum a\u00e7ma program\u0131na (\u00f6rne\u011fin, <code>login<\/code> veya <code>sshd<\/code>) g\u00f6m\u00fcl\u00fcyd\u00fc. Bu durum, yeni kimlik do\u011frulama y\u00f6ntemleri eklemek veya mevcut y\u00f6ntemleri de\u011fi\u015ftirmek gerekti\u011finde, ilgili program\u0131n yeniden derlenmesini gerektiriyordu.<\/p>\n<p>PAM, bu sorunu \u00e7\u00f6zmek i\u00e7in bir soyutlama katman\u0131 sunar. Bir uygulama (\u00f6rne\u011fin, SSH servisi) kimlik do\u011frulama, hesap y\u00f6netimi, parola de\u011fi\u015ftirme veya oturum a\u00e7ma\/kapama gibi bir i\u015flem ger\u00e7ekle\u015ftirmesi gerekti\u011finde, do\u011frudan PAM k\u00fct\u00fcphanesini \u00e7a\u011f\u0131r\u0131r. PAM k\u00fct\u00fcphanesi ise, <code>\/etc\/pam.d\/<\/code> dizinindeki yap\u0131land\u0131rma dosyalar\u0131na bakar ve hangi mod\u00fcllerin hangi s\u0131rayla kullan\u0131laca\u011f\u0131n\u0131 belirler. Her bir mod\u00fcl (<code>.so<\/code> uzant\u0131l\u0131 dinamik k\u00fct\u00fcphane dosyas\u0131), belirli bir kimlik do\u011frulama y\u00f6ntemini veya politikas\u0131n\u0131 uygular.<\/p>\n<p>\u00d6rne\u011fin, SSH servisi bir kullan\u0131c\u0131n\u0131n kimli\u011fini do\u011frulamak istedi\u011finde, <code>\/etc\/pam.d\/sshd<\/code> dosyas\u0131ndaki kurallar\u0131 izler. Bu kurallar, \u00f6nce bir kullan\u0131c\u0131n\u0131n parolas\u0131n\u0131 kontrol eden bir mod\u00fcl\u00fc, ard\u0131ndan bir kullan\u0131c\u0131n\u0131n hesab\u0131n\u0131n kilitli olup olmad\u0131\u011f\u0131n\u0131 kontrol eden bir ba\u015fka mod\u00fcl\u00fc ve son olarak da bizim MFA i\u00e7in ekleyece\u011fimiz <code>pam_google_authenticator.so<\/code> mod\u00fcl\u00fcn\u00fc \u00e7al\u0131\u015ft\u0131rabilir.<\/p>\n<p>PAM&#8217;in en b\u00fcy\u00fck avantajlar\u0131 \u015funlard\u0131r:<\/p>\n<p>*   <strong>Esneklik:<\/strong> Sistem y\u00f6neticileri, uygulamalar\u0131 yeniden derlemeden veya de\u011fi\u015ftirmeden farkl\u0131 kimlik do\u011frulama mekanizmalar\u0131n\u0131 (parola, LDAP, Kerberos, MFA vb.) kolayca entegre edebilir.<br \/>\n*   <strong>Mod\u00fclerlik:<\/strong> Her bir kimlik do\u011frulama g\u00f6revi, ba\u011f\u0131ms\u0131z bir mod\u00fcl taraf\u0131ndan yerine getirilir. Bu, geli\u015ftirme ve bak\u0131m s\u00fcre\u00e7lerini basitle\u015ftirir.<br \/>\n*   <strong>Merkezi Y\u00f6netim:<\/strong> Kimlik do\u011frulama politikalar\u0131 <code>\/etc\/pam.d\/<\/code> alt\u0131ndaki yap\u0131land\u0131rma dosyalar\u0131nda merkezi olarak y\u00f6netilir.<\/p>\n<p>SSH i\u00e7in MFA kurulumumuzda, <code>libpam-google-authenticator<\/code> paketi taraf\u0131ndan sa\u011flanan <code>pam_google_authenticator.so<\/code> mod\u00fcl\u00fcn\u00fc kullanaca\u011f\u0131z. Bu mod\u00fcl\u00fc <code>\/etc\/pam.d\/sshd<\/code> dosyas\u0131na ekleyerek, SSH&#8217;in kullan\u0131c\u0131 giri\u015fi s\u0131ras\u0131nda Google Authenticator taraf\u0131ndan \u00fcretilen tek kullan\u0131ml\u0131k kodu istemesini sa\u011flayaca\u011f\u0131z. Bu sayede, PAM&#8217;in mod\u00fcler yap\u0131s\u0131ndan faydalanarak SSH&#8217;e ek bir g\u00fcvenlik katman\u0131 eklemi\u015f olaca\u011f\u0131z.<\/p>\n<h3>Ad\u0131m Ad\u0131m Kurulum ve Yap\u0131land\u0131rma<\/h3>\n<p>SSH i\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama&#8217;y\u0131 kurmak, birka\u00e7 temel ad\u0131mdan olu\u015fur. Bu b\u00f6l\u00fcmde, Ubuntu 20.04 sunucunuzu haz\u0131rlamaktan, Google Authenticator&#8217;\u0131 yap\u0131land\u0131rmaya ve SSH servisini entegre etmeye kadar her ad\u0131m\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h4>1. Sunucuyu Haz\u0131rlama<\/h4>\n<p>\u0130lk olarak, sunucunuzun g\u00fcncel oldu\u011fundan ve gerekli PAM mod\u00fcl\u00fcn\u00fc i\u00e7erdi\u011finden emin olmal\u0131y\u0131z.<\/p>\n<p>1.  <strong>Sistem G\u00fcncellemesi:<\/strong><br \/>\n    Sunucunuzdaki paket listesini g\u00fcncelleyin ve y\u00fckl\u00fc paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltin. Bu, olas\u0131 g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapatmak ve ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nlemek i\u00e7in iyi bir uygulamad\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo apt update\n    sudo apt upgrade -y<\/code><\/pre>\n<p>2.  <strong>Gerekli Paketlerin Kurulumu:<\/strong><br \/>\n    Google Authenticator&#8217;\u0131 SSH ile entegre etmek i\u00e7in <code>libpam-google-authenticator<\/code> paketini kurman\u0131z gerekmektedir. Bu paket, Google Authenticator&#8217;\u0131n PAM mod\u00fcl\u00fcn\u00fc sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">sudo apt install libpam-google-authenticator -y<\/code><\/pre>\n<p>    Bu komut, gerekli PAM mod\u00fcl\u00fcn\u00fc sisteminize y\u00fckleyecektir.<\/p>\n<h4>2. Google Authenticator&#8217;\u0131 Yap\u0131land\u0131rma<\/h4>\n<p>Her SSH kullan\u0131c\u0131s\u0131 i\u00e7in Google Authenticator&#8217;\u0131 ayr\u0131 ayr\u0131 yap\u0131land\u0131rman\u0131z gerekir. Bu ad\u0131m, kullan\u0131c\u0131n\u0131n ev dizininde <code>.google_authenticator<\/code> adl\u0131 bir dosya olu\u015fturacak ve bu dosyada kullan\u0131c\u0131n\u0131n gizli anahtar\u0131n\u0131 (secret key) saklayacakt\u0131r.<\/p>\n<p>1.  <strong>Google Authenticator Kurulum Komutunu \u00c7al\u0131\u015ft\u0131rma:<\/strong><br \/>\n    MFA ile giri\u015f yapmas\u0131n\u0131 istedi\u011finiz <em>her kullan\u0131c\u0131<\/em> i\u00e7in kendi hesab\u0131yla sunucuya SSH ile ba\u011flan\u0131n ve a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">google-authenticator<\/code><\/pre>\n<p>    Bu komut, size bir dizi soru soracak ve bir QR kodu, gizli anahtar ve kurtarma kodlar\u0131 \u00fcretecektir. Sorulara genellikle <code>y<\/code> (yes) yan\u0131t\u0131 vermeniz \u00f6nerilir:<\/p>\n<p>    *   <code>Do you want authentication tokens to be time-based (y\/n)<\/code>: <strong>y<\/strong> (Zaman tabanl\u0131 OTP&#8217;ler kullanmak i\u00e7in. Bu, en yayg\u0131n ve \u00f6nerilen y\u00f6ntemdir.)<br \/>\n    *   <code>Do you want to update the .google_authenticator file (y\/n)<\/code>: <strong>y<\/strong> (Yap\u0131land\u0131rmay\u0131 kullan\u0131c\u0131n\u0131n ev dizinine kaydetmek i\u00e7in.)<br \/>\n    *   <code>Do you want to disallow multiple uses of the same authentication token (y\/n)<\/code>: <strong>y<\/strong> (Ayn\u0131 OTP kodunun birden fazla kullan\u0131lmas\u0131n\u0131 engeller, replay sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flar.)<br \/>\n    *   <code>Do you want to enable time-based throttling (y\/n)<\/code>: <strong>y<\/strong> (Belirli bir s\u00fcre i\u00e7inde \u00e7ok say\u0131da yanl\u0131\u015f OTP giri\u015fimi yap\u0131ld\u0131\u011f\u0131nda deneme say\u0131s\u0131n\u0131 s\u0131n\u0131rlar. Kaba kuvvet sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flar.)<\/p>\n<p>    Komutun \u00e7\u0131kt\u0131s\u0131 a\u015fa\u011f\u0131daki gibi olacakt\u0131r (QR kodu ve anahtarlar farkl\u0131l\u0131k g\u00f6sterecektir):<\/p>\n<pre><code class=\"language-\">Do you want authentication tokens to be time-based (y\/n) y\n    https:\/\/www.google.com\/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth:\/\/totp\/kullanici_adi@sunucu_adi%3Fsecret%3DKXQXXXXXXX5K\n    Your new secret key is: KXQXXXXXXX5K\n    Your verification code is 123456\n    Your emergency scratch codes are:\n      87654321\n      23456789\n      ...\n    Do you want to update the .google_authenticator file (y\/n) y\n    Do you want to disallow multiple uses of the same authentication token (y\/n) y\n    Do you want to enable time-based throttling (y\/n) y<\/code><\/pre>\n<p>2.  <strong>QR Kodunu Mobil Uygulamaya Ekleme:<\/strong><br \/>\n    \u00c7\u0131kt\u0131daki QR kodunu ak\u0131ll\u0131 telefonunuzdaki Google Authenticator (veya benzeri) uygulamas\u0131yla taray\u0131n. E\u011fer tarayam\u0131yorsan\u0131z, &#8220;Your new secret key is:&#8221; ile ba\u015flayan gizli anahtar\u0131 uygulamaya manuel olarak girebilirsiniz. Uygulama, her 30 saniyede bir de\u011fi\u015fen 6 haneli bir kod \u00fcretmeye ba\u015flayacakt\u0131r.<\/p>\n<p>3.  <strong>Kurtarma Kodlar\u0131n\u0131 G\u00fcvenli Bir Yere Kaydetme:<\/strong><br \/>\n    <code>Your emergency scratch codes are:<\/code> ba\u015fl\u0131\u011f\u0131 alt\u0131nda listelenen kodlar, telefonunuzu kaybetmeniz veya OTP uygulaman\u0131za eri\u015fememeniz durumunda sisteme giri\u015f yapman\u0131z\u0131 sa\u011flayacak tek kullan\u0131ml\u0131k kurtarma kodlar\u0131d\u0131r. <strong>Bu kodlar\u0131 yazd\u0131r\u0131n veya g\u00fcvenli, \u00e7evrimd\u0131\u015f\u0131 bir yerde saklay\u0131n.<\/strong> Bu kodlar\u0131 dijital ortamda saklaman\u0131z \u00f6nerilmez. Her kod yaln\u0131zca bir kez kullan\u0131labilir.<\/p>\n<p>Bu ad\u0131m\u0131, MFA ile korunmas\u0131n\u0131 istedi\u011finiz her kullan\u0131c\u0131 i\u00e7in tekrarlaman\u0131z gerekti\u011fini unutmay\u0131n.<\/p>\n<h4>3. PAM&#8217;i SSH \u0130\u00e7in Yap\u0131land\u0131rma<\/h4>\n<p>\u015eimdi, SSH&#8217;in Google Authenticator PAM mod\u00fcl\u00fcn\u00fc kullanmas\u0131n\u0131 sa\u011flamak i\u00e7in <code>\/etc\/pam.d\/sshd<\/code> dosyas\u0131n\u0131 d\u00fczenlememiz gerekiyor.<\/p>\n<p>1.  <strong>PAM Yap\u0131land\u0131rma Dosyas\u0131n\u0131 D\u00fczenleme:<\/strong><br \/>\n    <code>sudo<\/code> yetkileriyle <code>\/etc\/pam.d\/sshd<\/code> dosyas\u0131n\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/pam.d\/sshd<\/code><\/pre>\n<p>2.  <strong>PAM Mod\u00fcl\u00fcn\u00fc Ekleme:<\/strong><br \/>\n    Dosyan\u0131n sonuna veya genellikle <code>auth required pam_unix.so<\/code> sat\u0131r\u0131n\u0131n hemen alt\u0131na a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin:<\/p>\n<pre><code class=\"language-\">auth required pam_google_authenticator.so<\/code><\/pre>\n<p>    Bu sat\u0131r, Google Authenticator mod\u00fcl\u00fcn\u00fcn kimlik do\u011frulama i\u00e7in <em>gerekli<\/em> oldu\u011funu belirtir. Yani, kullan\u0131c\u0131 hem di\u011fer kimlik do\u011frulama fakt\u00f6rlerini (parola veya SSH anahtar\u0131) hem de Google Authenticator kodunu sa\u011flamak zorunda kalacakt\u0131r.<\/p>\n<p>    Dosyan\u0131z\u0131n bir k\u0131sm\u0131 \u015f\u00f6yle g\u00f6r\u00fcnebilir:<\/p>\n<pre><code class=\"language-\"># Standard Un*x authentication.\n    @include common-auth\n    # here's the fallback if no module succeeds\n    auth    requisite       pam_deny.so\n    # This includes settings that are common to the SSH daemon.\n    # auth required pam_unix.so try_first_pass # Bu sat\u0131r\u0131n alt\u0131nda olabilir\n    auth required pam_google_authenticator.so # Bu sat\u0131r\u0131 ekleyin<\/code><\/pre>\n<p>    De\u011fi\u015fiklikleri kaydedin (nano&#8217;da <code>Ctrl+O<\/code>, <code>Enter<\/code>, sonra <code>Ctrl+X<\/code>).<\/p>\n<h4>4. SSH Servisini Yap\u0131land\u0131rma<\/h4>\n<p>Son olarak, SSH servisini MFA&#8217;y\u0131 kullanacak \u015fekilde yap\u0131land\u0131rmam\u0131z gerekiyor. Bu, <code>\/etc\/ssh\/sshd_config<\/code> dosyas\u0131nda baz\u0131 de\u011fi\u015fiklikler yapmay\u0131 i\u00e7erir.<\/p>\n<p>1.  <strong>SSH Servis Yap\u0131land\u0131rma Dosyas\u0131n\u0131 D\u00fczenleme:<\/strong><br \/>\n    <code>sudo<\/code> yetkileriyle <code>\/etc\/ssh\/sshd_config<\/code> dosyas\u0131n\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/ssh\/sshd_config<\/code><\/pre>\n<p>2.  <strong>Gerekli Parametreleri Ayarlama:<\/strong><br \/>\n    Dosya i\u00e7inde a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 bulun ve de\u011ferlerini belirtilen \u015fekilde ayarlay\u0131n veya ekleyin:<\/p>\n<p>    *   <code>ChallengeResponseAuthentication<\/code>: Bu parametre, SSH sunucusunun PAM mod\u00fcllerinden gelen sorgu-yan\u0131t (challenge-response) kimlik do\u011frulamas\u0131n\u0131 kullanmas\u0131na izin verir. Bu, Google Authenticator kodunun istenmesi i\u00e7in gereklidir.<\/p>\n<pre><code class=\"language-\">ChallengeResponseAuthentication yes<\/code><\/pre>\n<p>    *   <code>UsePAM<\/code>: Bu parametre, SSH sunucusunun kimlik do\u011frulama i\u00e7in PAM&#8217;i kullan\u0131p kullanmayaca\u011f\u0131n\u0131 belirler. Zaten <code>yes<\/code> olarak ayarlanm\u0131\u015f olmal\u0131d\u0131r, ancak kontrol etmekte fayda var.<\/p>\n<pre><code class=\"language-\">UsePAM yes<\/code><\/pre>\n<p>    *   <code>AuthenticationMethods<\/code>: Bu parametre, kullan\u0131c\u0131lar\u0131n hangi kimlik do\u011frulama y\u00f6ntemlerini kullanarak giri\u015f yapabilece\u011fini belirler. MFA&#8217;y\u0131 etkinle\u015ftirdi\u011fimizde, bu parametreyi kullanarak SSH anahtar\u0131 veya parola ile birlikte <code>keyboard-interactive<\/code> (bu, PAM arac\u0131l\u0131\u011f\u0131yla OTP kodunu isteyecek y\u00f6ntemdir) y\u00f6ntemini belirtmeliyiz.<\/p>\n<p>        *   <strong>Sadece SSH Anahtar\u0131 + MFA:<\/strong> Bu en g\u00fcvenli yakla\u015f\u0131md\u0131r. Kullan\u0131c\u0131lar \u00f6nce SSH anahtarlar\u0131yla kimlik do\u011frulamas\u0131 yapar, ard\u0131ndan OTP kodunu girer.<\/p>\n<pre><code class=\"language-\">PasswordAuthentication no\n            AuthenticationMethods publickey,keyboard-interactive<\/code><\/pre>\n<p>        *   <strong>Sadece Parola + MFA:<\/strong> Kullan\u0131c\u0131lar \u00f6nce parolalar\u0131n\u0131 girer, ard\u0131ndan OTP kodunu girer.<\/p>\n<pre><code class=\"language-\">PasswordAuthentication yes\n            AuthenticationMethods password,keyboard-interactive<\/code><\/pre>\n<p>        *   <strong>SSH Anahtar\u0131 veya Parola + MFA (En Esnek):<\/strong> Kullan\u0131c\u0131lar hem SSH anahtar\u0131 hem de parola ile MFA&#8217;y\u0131 kullanabilir. Bu, en esnek ancak potansiyel olarak daha az g\u00fcvenli bir se\u00e7enektir (parola g\u00fcvenli\u011fine ba\u011fl\u0131 olarak).<\/p>\n<pre><code class=\"language-\">PasswordAuthentication yes\n            AuthenticationMethods publickey,keyboard-interactive,password,keyboard-interactive<\/code><\/pre>\n<p>        Makalenin geri kalan\u0131nda, en esnek olan <code>publickey,keyboard-interactive,password,keyboard-interactive<\/code> se\u00e7ene\u011fini kullanarak devam edece\u011fiz. Bu, kullan\u0131c\u0131lar\u0131n SSH anahtar\u0131 veya parola ile ilk fakt\u00f6r\u00fc sa\u011flad\u0131ktan sonra, ikinci fakt\u00f6r olarak TOTP kodunu girmelerini sa\u011flar. E\u011fer <code>AuthenticationMethods<\/code> sat\u0131r\u0131 yorum sat\u0131r\u0131 olarak (ba\u015f\u0131nda <code>#<\/code> i\u015faretiyle) bulunuyorsa, <code>#<\/code> i\u015faretini kald\u0131r\u0131n ve yukar\u0131daki de\u011feri ekleyin. Yoksa, dosyan\u0131n sonuna ekleyebilirsiniz.<\/p>\n<p>    *   <strong>\u0130ste\u011fe Ba\u011fl\u0131: Root Giri\u015fini K\u0131s\u0131tlama:<\/strong> G\u00fcvenlik i\u00e7in, root kullan\u0131c\u0131s\u0131n\u0131n do\u011frudan SSH ile giri\u015f yapmas\u0131n\u0131 engellemek iyi bir uygulamad\u0131r. Bunun yerine, normal bir kullan\u0131c\u0131yla giri\u015f yap\u0131p <code>sudo<\/code> kullanabilirsiniz.<\/p>\n<pre><code class=\"language-\">PermitRootLogin no<\/code><\/pre>\n<p>    De\u011fi\u015fiklikleri kaydedin (nano&#8217;da <code>Ctrl+O<\/code>, <code>Enter<\/code>, sonra <code>Ctrl+X<\/code>).<\/p>\n<p>3.  <strong>SSH Servisini Yeniden Ba\u015flatma:<\/strong><br \/>\n    Yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in SSH servisini yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart sshd<\/code><\/pre>\n<p>    <strong>\u00d6NEML\u0130 G\u00dcVENL\u0130K UYARISI:<\/strong> SSH servisini yeniden ba\u015flatmadan \u00f6nce mevcut SSH oturumunuzu a\u00e7\u0131k tutun. E\u011fer yap\u0131land\u0131rmada bir hata yapt\u0131ysan\u0131z ve SSH servisi ba\u015flamazsa veya giri\u015f yapamazsan\u0131z, a\u00e7\u0131k oturumunuz \u00fczerinden d\u00fczeltmeleri yapabilirsiniz. Aksi takdirde, sunucuya fiziksel eri\u015fiminiz yoksa kilitlenebilirsiniz.<\/p>\n<h4>5. Kurulumu Test Etme<\/h4>\n<p>\u015eimdiye kadar yapt\u0131\u011f\u0131n\u0131z t\u00fcm yap\u0131land\u0131rmalar\u0131n do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in yeni bir SSH ba\u011flant\u0131s\u0131 kurarak test edelim.<\/p>\n<p>1.  <strong>Yeni Bir Terminal A\u00e7\u0131n:<\/strong><br \/>\n    Mevcut SSH oturumunuzu a\u00e7\u0131k b\u0131rakarak, bilgisayar\u0131n\u0131zda yeni bir terminal veya komut istemcisi a\u00e7\u0131n.<\/p>\n<p>2.  <strong>SSH ile Ba\u011flanmaya \u00c7al\u0131\u015f\u0131n:<\/strong><br \/>\n    MFA&#8217;y\u0131 yap\u0131land\u0131rd\u0131\u011f\u0131n\u0131z kullan\u0131c\u0131 hesab\u0131yla sunucunuza ba\u011flanmaya \u00e7al\u0131\u015f\u0131n:<\/p>\n<pre><code class=\"language-bash\">ssh kullan\u0131c\u0131_ad\u0131@sunucu_ip_adresi<\/code><\/pre>\n<p>3.  <strong>Kimlik Do\u011frulama S\u00fcrecini Takip Edin:<\/strong><br \/>\n    *   \u0130lk olarak, sunucu sizden SSH anahtar\u0131n\u0131z\u0131n parolas\u0131n\u0131 (e\u011fer kullan\u0131yorsan\u0131z) veya kullan\u0131c\u0131 parolan\u0131z\u0131 isteyecektir. Bu, ilk kimlik do\u011frulama fakt\u00f6r\u00fcd\u00fcr.<br \/>\n    *   Parolan\u0131z\u0131 veya anahtar\u0131n\u0131z\u0131 girdikten sonra, sunucu sizden &#8220;Verification code&#8221; veya &#8220;Google Authenticator code&#8221; gibi bir ifadeyle ikinci bir fakt\u00f6r isteyecektir.<br \/>\n    *   Ak\u0131ll\u0131 telefonunuzdaki Google Authenticator uygulamas\u0131n\u0131 a\u00e7\u0131n ve sunucunuz i\u00e7in \u00fcretilen 6 haneli kodu buraya girin.<\/p>\n<p>4.  <strong>Ba\u015far\u0131l\u0131 Giri\u015fi Do\u011frulay\u0131n:<\/strong><br \/>\n    E\u011fer her \u015fey do\u011fru yap\u0131land\u0131r\u0131ld\u0131ysa, OTP kodunu girdikten sonra sunucuya ba\u015far\u0131l\u0131 bir \u015fekilde giri\u015f yapmal\u0131s\u0131n\u0131z. Bu, MFA&#8217;n\u0131n ba\u015far\u0131yla kuruldu\u011funu ve \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<p>    <strong>Unutmay\u0131n:<\/strong> E\u011fer herhangi bir sorunla kar\u015f\u0131la\u015f\u0131rsan\u0131z ve giri\u015f yapamazsan\u0131z, a\u00e7\u0131k b\u0131rakt\u0131\u011f\u0131n\u0131z mevcut SSH oturumunuz \u00fczerinden yap\u0131land\u0131rma dosyalar\u0131n\u0131 tekrar kontrol edip d\u00fczeltmeleri yapabilirsiniz. Sorun giderme b\u00f6l\u00fcm\u00fcndeki ad\u0131mlara da ba\u015fvurabilirsiniz.<\/p>\n<h3>Geli\u015fmi\u015f Yap\u0131land\u0131rma ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>MFA kurulumunuzu daha da optimize etmek ve g\u00fcvenli\u011fi art\u0131rmak i\u00e7in baz\u0131 geli\u015fmi\u015f yap\u0131land\u0131rma se\u00e7enekleri ve ipu\u00e7lar\u0131 bulunmaktad\u0131r.<\/p>\n<h4>1. Farkl\u0131 Kimlik Do\u011frulama Y\u00f6ntemleri<\/h4>\n<p>Yukar\u0131da <code>AuthenticationMethods<\/code> parametresini farkl\u0131 \u015fekillerde ayarlayabilece\u011finizi belirtmi\u015ftik. \u0130\u015fte bu se\u00e7eneklerin detayl\u0131 a\u00e7\u0131klamalar\u0131 ve kullan\u0131m senaryolar\u0131:<\/p>\n<p>*   <strong>Sadece SSH Anahtar\u0131 ile MFA:<\/strong> Bu, genellikle en g\u00fcvenli y\u00f6ntem olarak kabul edilir. Kullan\u0131c\u0131, sunucuya ba\u011flanmak i\u00e7in \u00f6zel bir SSH anahtar\u0131na sahip olmal\u0131 ve ard\u0131ndan Google Authenticator kodunu sa\u011flamal\u0131d\u0131r. Parola kimlik do\u011frulamas\u0131 tamamen devre d\u0131\u015f\u0131 b\u0131rak\u0131l\u0131r.<\/p>\n<pre><code class=\"language-\">PasswordAuthentication no\n    AuthenticationMethods publickey,keyboard-interactive<\/code><\/pre>\n<p>    Bu yap\u0131land\u0131rmada, bir sald\u0131rgan\u0131n hem SSH \u00f6zel anahtar\u0131n\u0131za hem de mobil cihaz\u0131n\u0131zdaki OTP koduna eri\u015fmesi gerekir.<\/p>\n<p>*   <strong>Sadece Parola ile MFA:<\/strong> Kullan\u0131c\u0131, sunucuya ba\u011flanmak i\u00e7in parolas\u0131n\u0131 girmeli ve ard\u0131ndan Google Authenticator kodunu sa\u011flamal\u0131d\u0131r. SSH anahtar tabanl\u0131 kimlik do\u011frulama devre d\u0131\u015f\u0131 b\u0131rak\u0131l\u0131r (veya kullan\u0131lmaz).<\/p>\n<pre><code class=\"language-\">PasswordAuthentication yes\n    AuthenticationMethods password,keyboard-interactive<\/code><\/pre>\n<p>    Bu y\u00f6ntem, parolan\u0131n g\u00fc\u00e7l\u00fc olmas\u0131 durumunda ek bir g\u00fcvenlik katman\u0131 sa\u011flar.<\/p>\n<p>*   <strong>SSH Anahtar\u0131 veya Parola ile MFA (En Esnek):<\/strong> Kullan\u0131c\u0131, SSH anahtar\u0131 veya parola kullanarak ilk kimlik do\u011frulamas\u0131n\u0131 yapabilir, ard\u0131ndan Google Authenticator kodunu girer. Bu, kullan\u0131c\u0131lara esneklik sunar ancak her iki ilk fakt\u00f6r\u00fcn de g\u00fcvenli olmas\u0131n\u0131 gerektirir.<\/p>\n<pre><code class=\"language-\">PasswordAuthentication yes\n    AuthenticationMethods publickey,keyboard-interactive,password,keyboard-interactive<\/code><\/pre>\n<p>    Bu, makalede \u00f6nerilen varsay\u0131lan yap\u0131land\u0131rmad\u0131r. Kullan\u0131c\u0131lar, tercihlerine g\u00f6re SSH anahtar\u0131 veya parola ile giri\u015f yapabilirler.<\/p>\n<p>*   <strong>Root Giri\u015fini K\u0131s\u0131tlama (<code>PermitRootLogin no<\/code>):<\/strong> G\u00fcvenlik a\u00e7\u0131s\u0131ndan, <code>root<\/code> kullan\u0131c\u0131s\u0131n\u0131n do\u011frudan SSH ile giri\u015f yapmas\u0131n\u0131 engellemek \u015fiddetle tavsiye edilir. Bunun yerine, normal bir kullan\u0131c\u0131 ile giri\u015f yap\u0131p, gerekti\u011finde <code>sudo<\/code> komutunu kullanarak y\u00fckseltilmi\u015f ayr\u0131cal\u0131klar elde etmek \u00e7ok daha g\u00fcvenlidir. Bu, kaba kuvvet sald\u0131r\u0131lar\u0131n\u0131n do\u011frudan <code>root<\/code> hesab\u0131n\u0131 hedeflemesini engeller.<\/p>\n<h4>2. Kurtarma Kodlar\u0131<\/h4>\n<p>Google Authenticator&#8217;\u0131 yap\u0131land\u0131r\u0131rken \u00fcretilen &#8220;emergency scratch codes&#8221; (kurtarma kodlar\u0131) son derece \u00f6nemlidir.<\/p>\n<p>*   <strong>\u00d6nemi:<\/strong> Telefonunuzu kaybetmeniz, OTP uygulaman\u0131z\u0131n bozulmas\u0131 veya bir \u015fekilde OTP kodlar\u0131na eri\u015fiminizi kaybetmeniz durumunda, bu kodlar sunucunuza eri\u015fmenin tek yolu olabilir.<br \/>\n*   <strong>G\u00fcvenli Saklama:<\/strong> Bu kodlar\u0131 kesinlikle bilgisayar\u0131n\u0131zda veya sunucunuzda dijital olarak saklamay\u0131n. Bir sald\u0131rgan bu kodlara eri\u015firse, MFA korumas\u0131n\u0131 atlayabilir. En iyi uygulama, kodlar\u0131 yazd\u0131r\u0131p g\u00fcvenli bir kasada, kilitli bir \u00e7ekmecede veya ba\u015fka bir \u00e7evrimd\u0131\u015f\u0131, fiziksel yerde saklamakt\u0131r. Her kod yaln\u0131zca bir kez kullan\u0131labilir.<\/p>\n<h4>3. PAM Mod\u00fcl\u00fc Se\u00e7enekleri<\/h4>\n<p><code>\/etc\/pam.d\/sshd<\/code> dosyas\u0131na ekledi\u011fimiz <code>auth required pam_google_authenticator.so<\/code> sat\u0131r\u0131 i\u00e7in baz\u0131 ek se\u00e7enekler mevcuttur. Bu se\u00e7enekler, <code>pam_google_authenticator.so<\/code> mod\u00fcl\u00fcn\u00fcn davran\u0131\u015f\u0131n\u0131 \u00f6zelle\u015ftirmenize olanak tan\u0131r:<\/p>\n<p>*   <strong><code>nullok<\/code>:<\/strong> Bu se\u00e7enek, bir kullan\u0131c\u0131n\u0131n <code>.google_authenticator<\/code> dosyas\u0131na sahip olmamas\u0131 durumunda bile kimlik do\u011frulamas\u0131n\u0131n ba\u015far\u0131l\u0131 olmas\u0131na izin verir. Ba\u015fka bir deyi\u015fle, kullan\u0131c\u0131lar MFA&#8217;y\u0131 yap\u0131land\u0131rmam\u0131\u015f olsalar bile giri\u015f yapabilirler. Bu, \u00f6zellikle ge\u00e7ici bir ge\u00e7i\u015f s\u00fcreci i\u00e7in veya baz\u0131 kullan\u0131c\u0131lar i\u00e7in MFA&#8217;y\u0131 iste\u011fe ba\u011fl\u0131 hale getirmek istedi\u011finizde kullan\u0131\u015fl\u0131 olabilir. Ancak, bu se\u00e7ene\u011fin MFA&#8217;n\u0131n g\u00fcvenlik faydalar\u0131n\u0131 azaltt\u0131\u011f\u0131n\u0131 unutmay\u0131n. <strong>G\u00fcvenlik a\u00e7\u0131s\u0131ndan dikkatli kullan\u0131lmal\u0131d\u0131r.<\/strong><\/p>\n<pre><code class=\"language-\">auth required pam_google_authenticator.so nullok<\/code><\/pre>\n<p>*   <strong><code>secret=\/path\/to\/secret<\/code>:<\/strong> Varsay\u0131lan olarak, <code>pam_google_authenticator<\/code> kullan\u0131c\u0131n\u0131n ev dizinindeki <code>.google_authenticator<\/code> dosyas\u0131n\u0131 arar. Bu se\u00e7enekle, gizli anahtar dosyas\u0131n\u0131n farkl\u0131 bir konumunu belirleyebilirsiniz. Bu, \u00f6zel durumlar veya merkezi bir yap\u0131land\u0131rma i\u00e7in faydal\u0131 olabilir.<br \/>\n*   <strong><code>user_specific<\/code>:<\/strong> Bu se\u00e7enek, her kullan\u0131c\u0131 i\u00e7in ayr\u0131 bir gizli anahtar dosyas\u0131 kullan\u0131lmas\u0131n\u0131 sa\u011flar. Bu varsay\u0131lan davran\u0131\u015ft\u0131r ve genellikle de\u011fi\u015ftirilmesine gerek yoktur.<br \/>\n*   <strong><code>forward_pass<\/code>:<\/strong> Bu se\u00e7enek, kullan\u0131c\u0131n\u0131n girdi\u011fi parolay\u0131 (e\u011fer parola kimlik do\u011frulamas\u0131 kullan\u0131l\u0131yorsa) sonraki PAM mod\u00fcllerine iletir. Bu, birden fazla kimlik do\u011frulama ad\u0131m\u0131n\u0131n tek bir parola giri\u015fiyle tamamlanmas\u0131n\u0131 sa\u011flayabilir.<\/p>\n<p>Bu se\u00e7enekleri kullan\u0131rken, g\u00fcvenlik etkilerini dikkatlice de\u011ferlendirmeniz \u00f6nemlidir. Yanl\u0131\u015f yap\u0131land\u0131rma, bekledi\u011finizden daha az g\u00fcvenli bir duruma yol a\u00e7abilir.<\/p>\n<h4>4. G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h4>\n<p>SSH eri\u015fiminizin genel g\u00fcvenli\u011fini art\u0131rmak i\u00e7in MFA&#8217;ya ek olarak uygulayabilece\u011finiz baz\u0131 ek ipu\u00e7lar\u0131:<\/p>\n<p>*   <strong>Mobil Cihaz G\u00fcvenli\u011fi:<\/strong> OTP kodlar\u0131n\u0131 \u00fcreten ak\u0131ll\u0131 telefonunuzu PIN, parmak izi veya y\u00fcz tan\u0131ma gibi g\u00fc\u00e7l\u00fc bir kilitle koruyun. Cihaz\u0131n\u0131z\u0131n kaybolmas\u0131 veya \u00e7al\u0131nmas\u0131 durumunda yetkisiz eri\u015fimi engellemek i\u00e7in bu hayati \u00f6neme sahiptir.<br \/>\n*   <strong>SSH Anahtarlar\u0131n\u0131 Parola ile Koruma:<\/strong> E\u011fer SSH anahtarlar\u0131 kullan\u0131yorsan\u0131z, \u00f6zel anahtar\u0131n\u0131za bir parola (passphrase) atayarak ek bir g\u00fcvenlik katman\u0131 ekleyin. Bu, anahtar\u0131n\u0131z ele ge\u00e7irilse bile bir sald\u0131rgan\u0131n onu hemen kullanamayaca\u011f\u0131 anlam\u0131na gelir.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 (UFW):<\/strong> Sunucunuzda bir g\u00fcvenlik duvar\u0131 (\u00f6rne\u011fin, UFW &#8211; Uncomplicated Firewall) etkinle\u015ftirin ve yaln\u0131zca belirli IP adreslerinden veya a\u011flardan SSH eri\u015fimine izin verin. Bu, gereksiz ba\u011flant\u0131 denemelerini azalt\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo ufw enable\n    sudo ufw allow ssh # veya sudo ufw allow 22\/tcp\n    sudo ufw allow from 192.168.1.0\/24 to any port 22 # Belirli bir a\u011fdan eri\u015fim<\/code><\/pre>\n<p>*   <strong>Fail2ban:<\/strong> Fail2ban gibi bir ara\u00e7 kurarak, ba\u015far\u0131s\u0131z giri\u015f denemelerini izleyebilir ve belirli bir say\u0131da ba\u015far\u0131s\u0131z denemeden sonra kaynak IP adreslerini otomatik olarak engelleyebilirsiniz. Bu, kaba kuvvet sald\u0131r\u0131lar\u0131na kar\u015f\u0131 ek bir koruma sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">sudo apt install fail2ban -y\n    sudo systemctl enable fail2ban\n    sudo systemctl start fail2ban<\/code><\/pre>\n<p>*   <strong>Minimum Ayr\u0131cal\u0131k Prensibi:<\/strong> Sunucunuzda her kullan\u0131c\u0131ya yaln\u0131zca i\u015fini yapmak i\u00e7in ihtiya\u00e7 duydu\u011fu minimum ayr\u0131cal\u0131klar\u0131 verin. T\u00fcm y\u00f6netim g\u00f6revlerini <code>root<\/code> yerine <code>sudo<\/code> ile normal bir kullan\u0131c\u0131 \u00fczerinden yap\u0131n.<\/p>\n<p>Bu geli\u015fmi\u015f yap\u0131land\u0131rmalar ve g\u00fcvenlik ipu\u00e7lar\u0131, sunucunuzun SSH eri\u015fim g\u00fcvenli\u011fini MFA ile birle\u015ftirerek \u00e7ok daha sa\u011flam bir savunma hatt\u0131 olu\u015fturman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>Sorun Giderme<\/h3>\n<p>MFA kurulumu s\u0131ras\u0131nda veya sonras\u0131nda baz\u0131 sorunlarla kar\u015f\u0131la\u015fabilirsiniz. \u0130\u015fte yayg\u0131n sorunlar ve olas\u0131 \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4>1. Giri\u015f Yapam\u0131yorum<\/h4>\n<p>Bu, en yayg\u0131n ve en kritik sorundur. E\u011fer SSH ile giri\u015f yapam\u0131yorsan\u0131z, a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 kontrol edin:<\/p>\n<p>*   <strong>Mevcut SSH Oturumunu Kullan\u0131n:<\/strong> E\u011fer kurulum s\u0131ras\u0131nda a\u00e7\u0131k b\u0131rakt\u0131\u011f\u0131n\u0131z bir SSH oturumu varsa, onu kullanarak sunucuya eri\u015febilir ve yap\u0131land\u0131rma dosyalar\u0131n\u0131 kontrol edebilirsiniz. Bu, sunucuya fiziksel eri\u015fiminiz olmad\u0131\u011f\u0131nda hayat kurtar\u0131c\u0131d\u0131r.<br \/>\n*   <strong>Konsol\/VM Eri\u015fimi:<\/strong> E\u011fer sunucuya fiziksel eri\u015fiminiz veya bir sanal makine (VM) konsolunuz varsa, do\u011frudan sunucuya ba\u011flanarak yap\u0131land\u0131rma dosyalar\u0131n\u0131 d\u00fczeltebilirsiniz.<br \/>\n*   <strong><code>\/etc\/pam.d\/sshd<\/code> Dosyas\u0131n\u0131 Kontrol Edin:<\/strong><br \/>\n    *   <code>auth required pam_google_authenticator.so<\/code> sat\u0131r\u0131n\u0131n do\u011fru bir \u015fekilde eklendi\u011finden emin olun.<br \/>\n    *   Yaz\u0131m hatas\u0131 olmad\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   Sat\u0131r\u0131n ba\u015f\u0131nda <code>#<\/code> i\u015fareti olmad\u0131\u011f\u0131ndan emin olun (yorum sat\u0131r\u0131 olmamal\u0131).<br \/>\n*   <strong><code>\/etc\/ssh\/sshd_config<\/code> Dosyas\u0131n\u0131 Kontrol Edin:<\/strong><br \/>\n    *   <code>ChallengeResponseAuthentication yes<\/code> olarak ayarland\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   <code>UsePAM yes<\/code> olarak ayarland\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   <code>AuthenticationMethods<\/code> sat\u0131r\u0131n\u0131n do\u011fru bir \u015fekilde yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan ve sizin giri\u015f y\u00f6nteminizle uyumlu oldu\u011fundan emin olun (\u00f6rne\u011fin, <code>publickey,keyboard-interactive<\/code> veya <code>password,keyboard-interactive<\/code>).<br \/>\n    *   Yanl\u0131\u015f veya \u00e7ak\u0131\u015fan ba\u015fka bir <code>AuthenticationMethods<\/code> sat\u0131r\u0131 olmad\u0131\u011f\u0131ndan emin olun.<br \/>\n*   <strong>SSH Servis Durumunu Kontrol Edin:<\/strong><br \/>\n    SSH servisinin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status sshd<\/code><\/pre>\n<p>    E\u011fer servis ba\u015flamad\u0131ysa veya hata veriyorsa, \u00e7\u0131kt\u0131y\u0131 dikkatlice inceleyin.<br \/>\n*   <strong>G\u00fcnl\u00fck Dosyalar\u0131n\u0131 Kontrol Edin:<\/strong><br \/>\n    Hata mesajlar\u0131 i\u00e7in SSH servis g\u00fcnl\u00fcklerini kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo journalctl -u sshd -n 50 --no-pager<\/code><\/pre>\n<p>    Veya genel kimlik do\u011frulama g\u00fcnl\u00fcklerini inceleyin:<\/p>\n<pre><code class=\"language-bash\">sudo tail -f \/var\/log\/auth.log<\/code><\/pre>\n<p>    Bu g\u00fcnl\u00fckler, neden giri\u015f yapamad\u0131\u011f\u0131n\u0131za dair ipu\u00e7lar\u0131 sa\u011flayabilir.<\/p>\n<h4>2. Yanl\u0131\u015f Kod Hatas\u0131 (Verification code mismatch)<\/h4>\n<p>OTP kodunu do\u011fru girdi\u011finizi d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcn\u00fcz halde &#8220;Verification code mismatch&#8221; veya benzeri bir hata al\u0131yorsan\u0131z:<\/p>\n<p>*   <strong>Saat Senkronizasyonu (Mobil Cihaz):<\/strong> Ak\u0131ll\u0131 telefonunuzun saatinin do\u011fru ve otomatik olarak ayarland\u0131\u011f\u0131ndan (NTP senkronizasyonu) emin olun. TOTP algoritmalar\u0131 zaman tabanl\u0131 oldu\u011fu i\u00e7in, mobil cihaz\u0131n\u0131z ve sunucunuz aras\u0131ndaki saat fark\u0131 birka\u00e7 saniyeden fazla oldu\u011funda kodlar ge\u00e7ersiz hale gelebilir.<br \/>\n*   <strong>Saat Senkronizasyonu (Sunucu):<\/strong> Sunucunuzun saatinin de do\u011fru oldu\u011fundan emin olun. Sunucuda saati kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">timedatectl<\/code><\/pre>\n<p>    E\u011fer sunucunuzun saati yanl\u0131\u015fsa, NTP servisi ile senkronize etmeniz gerekebilir:<\/p>\n<pre><code class=\"language-bash\">sudo apt install ntp -y\n    sudo systemctl enable ntp\n    sudo systemctl start ntp<\/code><\/pre>\n<p>    Veya <code>timedatectl set-ntp true<\/code> komutuyla sistem saatini otomatik olarak senkronize edebilirsiniz.<br \/>\n*   <strong>Do\u011fru Kodu Girdi\u011finizden Emin Olun:<\/strong> Google Authenticator uygulamas\u0131nda birden fazla hesap varsa, do\u011fru sunucuya ait kodu girdi\u011finizden emin olun. Kodun s\u00fcresi dolmadan (genellikle 30 saniye) girmeniz gerekir.<br \/>\n*   <strong><code>google-authenticator<\/code> Ayarlar\u0131n\u0131 Kontrol Edin:<\/strong> <code>google-authenticator<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131rken &#8220;time-based&#8221; se\u00e7ene\u011fine <code>y<\/code> yan\u0131t\u0131n\u0131 verdi\u011finizden emin olun. E\u011fer yanl\u0131\u015fl\u0131kla <code>n<\/code> yan\u0131t\u0131 verdiyseniz, MFA zaman tabanl\u0131 \u00e7al\u0131\u015fmayacakt\u0131r. Bu durumda, <code>.google_authenticator<\/code> dosyas\u0131n\u0131 silip (veya i\u00e7eri\u011fini temizleyip) <code>google-authenticator<\/code> komutunu tekrar \u00e7al\u0131\u015ft\u0131rman\u0131z gerekebilir.<\/p>\n<h4>3. <code>.google_authenticator<\/code> Dosyas\u0131 Yok veya Yanl\u0131\u015f \u0130zinler<\/h4>\n<p>E\u011fer bir kullan\u0131c\u0131 i\u00e7in MFA yap\u0131land\u0131rmas\u0131 yap\u0131ld\u0131ysa ancak <code>pam_google_authenticator.so<\/code> mod\u00fcl\u00fc dosyay\u0131 bulam\u0131yorsa:<\/p>\n<p>*   <strong>Dosya Mevcut mu?<\/strong> Kullan\u0131c\u0131n\u0131n ev dizininde <code>.google_authenticator<\/code> dosyas\u0131n\u0131n varl\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">ls -la \/home\/kullanici_adi\/.google_authenticator<\/code><\/pre>\n<p>    E\u011fer dosya yoksa, ilgili kullan\u0131c\u0131 olarak <code>google-authenticator<\/code> komutunu tekrar \u00e7al\u0131\u015ft\u0131rman\u0131z gerekir.<br \/>\n*   <strong>Dosya \u0130zinleri:<\/strong> <code>.google_authenticator<\/code> dosyas\u0131n\u0131n izinleri <code>400<\/code> veya <code>600<\/code> olmal\u0131d\u0131r (<code>rw-------<\/code> veya <code>r--------<\/code>). Yani sadece dosyan\u0131n sahibi taraf\u0131ndan okunabilir olmal\u0131d\u0131r. Daha geni\u015f izinler g\u00fcvenlik riski olu\u015fturur ve PAM mod\u00fcl\u00fc taraf\u0131ndan reddedilebilir.<\/p>\n<pre><code class=\"language-bash\">chmod 600 \/home\/kullanici_adi\/.google_authenticator<\/code><\/pre>\n<p>Sorun giderme ad\u0131mlar\u0131n\u0131 uygularken her zaman dikkatli olun ve kritik yap\u0131land\u0131rma dosyalar\u0131n\u0131 d\u00fczenlemeden \u00f6nce yedeklemeyi unutmay\u0131n.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Ubuntu 20.04 \u00fczerinde SSH eri\u015fimi i\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) kurmak, sunucular\u0131n\u0131z\u0131n g\u00fcvenli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rman\u0131n etkili ve nispeten basit bir yoludur. Bu makalede ad\u0131m ad\u0131m g\u00f6sterildi\u011fi gibi, <code>libpam-google-authenticator<\/code> paketi ve PAM \u00e7er\u00e7evesi sayesinde, parola veya SSH anahtar\u0131 tabanl\u0131 kimlik do\u011frulaman\u0131n \u00fczerine ek bir koruma katman\u0131 ekleyebilirsiniz.<\/p>\n<p>MFA&#8217;n\u0131n sundu\u011fu en b\u00fcy\u00fck avantaj, bir sald\u0131rgan\u0131n ilk kimlik do\u011frulama fakt\u00f6r\u00fcn\u00fcz\u00fc (parola veya SSH anahtar\u0131) ele ge\u00e7irmesi durumunda bile, ikinci fakt\u00f6re (mobil cihaz\u0131n\u0131zdaki tek kullan\u0131ml\u0131k kod) sahip olmad\u0131k\u00e7a sisteme eri\u015fim sa\u011flayamayacak olmas\u0131d\u0131r. Bu, kaba kuvvet sald\u0131r\u0131lar\u0131na, kimlik av\u0131 giri\u015fimlerine ve di\u011fer kimlik bilgisi h\u0131rs\u0131zl\u0131\u011f\u0131 tekniklerine kar\u015f\u0131 g\u00fc\u00e7l\u00fc bir savunma hatt\u0131 olu\u015fturur.<\/p>\n<p>Kurulum s\u00fcrecinde sunucunuzu haz\u0131rlad\u0131k, her kullan\u0131c\u0131 i\u00e7in Google Authenticator&#8217;\u0131 yap\u0131land\u0131rd\u0131k, PAM&#8217;i ve SSH servisini entegre ettik ve son olarak kurulumu test ettik. Ayr\u0131ca, farkl\u0131 kimlik do\u011frulama y\u00f6ntemleri, kurtarma kodlar\u0131n\u0131n \u00f6nemi, PAM mod\u00fcl\u00fc se\u00e7enekleri ve genel g\u00fcvenlik ipu\u00e7lar\u0131 gibi geli\u015fmi\u015f konulara da de\u011findik. Kar\u015f\u0131la\u015f\u0131labilecek yayg\u0131n sorunlara y\u00f6nelik sorun giderme \u00e7\u00f6z\u00fcmleri de sunarak, s\u00fcrecin m\u00fcmk\u00fcn oldu\u011funca sorunsuz ilerlemesini hedefledik.<\/p>\n<p>Siber g\u00fcvenlik s\u00fcrekli geli\u015fen bir aland\u0131r ve sunucular\u0131n\u0131z\u0131 korumak i\u00e7in proaktif ad\u0131mlar atmak hayati \u00f6nem ta\u015f\u0131r. MFA, bu ad\u0131mlardan sadece biridir, ancak en etkili olanlardan biridir. Bu kurulumla, Ubuntu 20.04 sunucular\u0131n\u0131z\u0131n g\u00fcvenli\u011fini art\u0131rm\u0131\u015f ve dijital varl\u0131klar\u0131n\u0131z\u0131 yetkisiz eri\u015fime kar\u015f\u0131 daha diren\u00e7li hale getirmi\u015f olacaks\u0131n\u0131z. G\u00fcvenlik politikalar\u0131n\u0131z\u0131 d\u00fczenli olarak g\u00f6zden ge\u00e7irmeyi ve g\u00fcncel g\u00fcvenlik uygulamalar\u0131n\u0131 takip etmeyi unutmay\u0131n.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu\nSiber g\u00fcvenlik, g\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda her zamankinde","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-36620","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu Siber g\u00fcvenlik, g\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda her zamankinde\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-20T15:41:01+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu\",\"datePublished\":\"2025-12-20T15:41:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/\"},\"wordCount\":4167,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/\",\"name\":\"Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-20T15:41:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu","og_description":"Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu Siber g\u00fcvenlik, g\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda her zamankinde","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-20T15:41:01+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu","datePublished":"2025-12-20T15:41:01+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/"},"wordCount":4167,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/","name":"Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-20T15:41:01+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-20-04-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 20.04 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=36620"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36620\/revisions"}],"predecessor-version":[{"id":36621,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36620\/revisions\/36621"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}