{"id":30378,"date":"2025-09-27T03:41:06","date_gmt":"2025-09-27T00:41:06","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=30378"},"modified":"2025-09-27T03:41:06","modified_gmt":"2025-09-27T00:41:06","slug":"centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/","title":{"rendered":"CentOS 8 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu"},"content":{"rendered":"<p><body><\/p>\n<h2>CentOS 8 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu<\/h2>\n<h2>Giri\u015f<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, sunucu g\u00fcvenli\u011fi her zamankinden daha kritik bir \u00f6neme sahiptir. \u00d6zellikle uzaktan eri\u015fim i\u00e7in kullan\u0131lan Secure Shell (SSH) protokol\u00fc, sunuculara ve kritik verilere a\u00e7\u0131lan bir kap\u0131 g\u00f6revi g\u00f6r\u00fcr. Varsay\u0131lan olarak SSH, genellikle parola tabanl\u0131 veya SSH anahtar\u0131 tabanl\u0131 kimlik do\u011frulama y\u00f6ntemlerini kullan\u0131r. Her iki y\u00f6ntem de g\u00fc\u00e7l\u00fc parolalar veya g\u00fcvenli anahtarlar kullan\u0131ld\u0131\u011f\u0131nda olduk\u00e7a g\u00fcvenli olsa da, tek bir kimlik do\u011frulama fakt\u00f6r\u00fcne dayanmak, potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131na davetiye \u00e7\u0131karabilir. Brute-force sald\u0131r\u0131lar\u0131, parola tahminleri veya ele ge\u00e7irilmi\u015f anahtarlar, yetkisiz eri\u015fime yol a\u00e7abilir.<\/p>\n<p>\u0130\u015fte tam da bu noktada \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) devreye girer. MFA, 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 y\u00f6ntemidir. Bu fakt\u00f6rler genellikle \u00fc\u00e7 kategoriden birine girer:<br \/>\n1.  <strong>Bildikleriniz:<\/strong> Parola, PIN gibi bilgiler.<br \/>\n2.  <strong>Sahip Olduklar\u0131n\u0131z:<\/strong> Ak\u0131ll\u0131 telefon, donan\u0131m token&#8217;\u0131, USB anahtar\u0131 gibi fiziksel cihazlar.<br \/>\n3.  <strong>Oldu\u011funuz \u015eeyler:<\/strong> Parmak izi, y\u00fcz tan\u0131ma, retina taramas\u0131 gibi biyometrik veriler.<\/p>\n<p>SSH i\u00e7in MFA uyguland\u0131\u011f\u0131nda, bir sald\u0131rgan\u0131n sadece parolay\u0131 bilmesi veya anahtar\u0131 ele ge\u00e7irmesi yeterli olmaz. Ayn\u0131 zamanda, kullan\u0131c\u0131n\u0131n sahip oldu\u011fu ikinci bir fakt\u00f6re de (genellikle ak\u0131ll\u0131 telefonundaki bir uygulama taraf\u0131ndan \u00fcretilen tek kullan\u0131ml\u0131k kod) sahip olmas\u0131 gerekir. Bu, yetkisiz eri\u015fim riskini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r ve sunucu g\u00fcvenli\u011fini katmanl\u0131 bir \u015fekilde art\u0131r\u0131r.<\/p>\n<p>Bu makalede, CentOS 8 i\u015fletim sistemi \u00fczerinde \u00e7al\u0131\u015fan bir SSH sunucusu i\u00e7in Google Authenticator tabanl\u0131 Zaman Tabanl\u0131 Tek Kullan\u0131ml\u0131k Parola (TOTP) kullanarak \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama&#8217;n\u0131n nas\u0131l kurulaca\u011f\u0131n\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z. Bu y\u00f6ntem, yayg\u0131n olarak kullan\u0131lan ve nispeten kolayca yap\u0131land\u0131r\u0131labilen bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<h2>\u00d6n Gereksinimler<\/h2>\n<p>MFA kurulumuna ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n gereksinimlerin kar\u015f\u0131land\u0131\u011f\u0131ndan emin olun:<\/p>\n<p>*   <strong>CentOS 8 Sunucusu:<\/strong> Kurulum yapaca\u011f\u0131n\u0131z aktif bir CentOS 8 sunucusu.<br \/>\n*   <strong>SSH Eri\u015fimi:<\/strong> Sunucuya SSH \u00fczerinden eri\u015fim sa\u011flayabilen bir kullan\u0131c\u0131 hesab\u0131n\u0131z olmal\u0131. Bu hesap <code>sudo<\/code> yetkilerine sahip olmal\u0131 veya do\u011frudan <code>root<\/code> kullan\u0131c\u0131s\u0131 olmal\u0131s\u0131n\u0131z. Ancak g\u00fcvenlik a\u00e7\u0131s\u0131ndan <code>root<\/code> kullan\u0131c\u0131s\u0131 ile do\u011frudan SSH eri\u015fimi \u00f6nerilmez.<br \/>\n*   <strong>Temel Linux Komut Bilgisi:<\/strong> <code>yum<\/code> veya <code>dnf<\/code> paket y\u00f6neticisi, dosya d\u00fczenleme (<code>vi<\/code>, <code>nano<\/code>), servis y\u00f6netimi (<code>systemctl<\/code>) gibi temel Linux komutlar\u0131na a\u015fina olman\u0131z beklenir.<br \/>\n*   <strong>EPEL Deposu:<\/strong> <code>google-authenticator<\/code> paketi EPEL (Extra Packages for Enterprise Linux) deposunda bulunur. Kurulumdan \u00f6nce bu deponun sunucunuzda etkinle\u015ftirilmi\u015f olmas\u0131 gerekir. E\u011fer etkin de\u011filse, kurulum ad\u0131mlar\u0131nda nas\u0131l etkinle\u015ftirilece\u011fi anlat\u0131lacakt\u0131r.<br \/>\n*   <strong>NTP Senkronizasyonu:<\/strong> TOTP tabanl\u0131 MFA, zaman senkronizasyonuna dayand\u0131\u011f\u0131 i\u00e7in sunucunuzun do\u011fru zaman\u0131 g\u00f6sterdi\u011finden emin olman\u0131z kritik \u00f6neme sahiptir. Yanl\u0131\u015f zaman ayarlar\u0131, do\u011frulama kodlar\u0131n\u0131n ge\u00e7ersiz olmas\u0131na neden olabilir. Sunucunuzun NTP (Network Time Protocol) ile senkronize oldu\u011fundan emin olun.<br \/>\n*   <strong>Ak\u0131ll\u0131 Telefon:<\/strong> Google Authenticator veya benzeri bir TOTP uygulamas\u0131n\u0131 (Authy, Microsoft Authenticator vb.) kurabilece\u011finiz bir ak\u0131ll\u0131 telefonunuz olmal\u0131.<\/p>\n<h2>Ad\u0131m 1: Gerekli Paketlerin Kurulumu<\/h2>\n<p>\u0130lk ad\u0131m olarak, Google Authenticator mod\u00fcl\u00fcn\u00fc ve varsa eksik olan PAM (Pluggable Authentication Modules) bile\u015fenlerini kurmam\u0131z gerekiyor.<\/p>\n<h3>EPEL Deposunun Etkinle\u015ftirilmesi<\/h3>\n<p>E\u011fer EPEL deposu sunucunuzda etkin de\u011filse, a\u015fa\u011f\u0131daki komutla etkinle\u015ftirebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo dnf install epel-release -y<\/code><\/pre>\n<p>Bu komut, EPEL deposunu sisteminize ekleyecektir.<\/p>\n<h3>Google Authenticator ve PAM Geli\u015ftirme Paketlerinin Kurulumu<\/h3>\n<p>\u015eimdi <code>google-authenticator<\/code> paketini ve PAM mod\u00fclleri i\u00e7in gerekli olabilecek geli\u015ftirme paketlerini kural\u0131m. <code>pam-devel<\/code> paketi genellikle PAM mod\u00fcllerinin derlenmesi i\u00e7in gerekli olsa da, <code>google-authenticator<\/code> paketi genellikle \u00f6nceden derlenmi\u015f mod\u00fcl\u00fc i\u00e7erir. Yine de, eksiklik durumunda kurulmas\u0131nda fayda vard\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo dnf install google-authenticator pam pam-devel -y<\/code><\/pre>\n<p>Bu komutlar, <code>google-authenticator<\/code> uygulamas\u0131n\u0131 ve ilgili PAM mod\u00fcl\u00fcn\u00fc sisteminize kuracakt\u0131r.<\/p>\n<h2>Ad\u0131m 2: PAM Mod\u00fcl\u00fcn\u00fcn Yap\u0131land\u0131r\u0131lmas\u0131<\/h2>\n<p>PAM (Pluggable Authentication Modules), Linux sistemlerinde kimlik do\u011frulama, hesap y\u00f6netimi, oturum y\u00f6netimi ve parola y\u00f6netimi gibi g\u00fcvenlik i\u015flemlerini mod\u00fcler bir \u015fekilde y\u00f6neten bir \u00e7er\u00e7evedir. Bu sayede, farkl\u0131 kimlik do\u011frulama y\u00f6ntemleri (parola, parmak izi, tek kullan\u0131ml\u0131k kodlar vb.) sisteme kolayca entegre edilebilir. SSH servisi de kimlik do\u011frulamas\u0131 i\u00e7in PAM&#8217;i kullan\u0131r.<\/p>\n<p><code>sshd<\/code> servisi i\u00e7in PAM yap\u0131land\u0131rmas\u0131n\u0131 d\u00fczenleyerek Google Authenticator mod\u00fcl\u00fcn\u00fc devreye alaca\u011f\u0131z.<\/p>\n<h3>sshd PAM Yap\u0131land\u0131rma Dosyas\u0131n\u0131n Yedeklenmesi<\/h3>\n<p>Herhangi bir yap\u0131land\u0131rma de\u011fi\u015fikli\u011fi yapmadan \u00f6nce, orijinal dosyay\u0131 yedeklemek iyi bir uygulamad\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo cp \/etc\/pam.d\/sshd \/etc\/pam.d\/sshd.bak<\/code><\/pre>\n<h3>sshd PAM Dosyas\u0131n\u0131n D\u00fczenlenmesi<\/h3>\n<p>\u015eimdi <code>sshd<\/code> i\u00e7in PAM yap\u0131land\u0131rma dosyas\u0131n\u0131 (<code>\/etc\/pam.d\/sshd<\/code>) 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>Bu dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki sat\u0131r\u0131 eklememiz gerekiyor:<\/p>\n<pre><code class=\"language-\">auth required pam_google_authenticator.so<\/code><\/pre>\n<p>Bu sat\u0131r\u0131n eklenme yeri \u00f6nemlidir. Genellikle, kullan\u0131c\u0131dan parola istenmeden \u00f6nce veya parola do\u011frulamas\u0131ndan hemen \u00f6nce eklenir. E\u011fer SSH anahtar\u0131 ile giri\u015f yap\u0131l\u0131yorsa ve MFA da isteniyorsa, <code>auth sufficient pam_unix.so<\/code> sat\u0131r\u0131ndan sonra veya <code>auth include password-auth<\/code> sat\u0131r\u0131ndan \u00f6nce eklemek uygun olabilir. Ancak en basit ve yayg\u0131n senaryoda, MFA&#8217;y\u0131 zorunlu k\u0131lmak i\u00e7in dosyan\u0131n en \u00fcst\u00fcne veya <code>auth substack password-auth<\/code> sat\u0131r\u0131ndan hemen \u00f6nce eklemek genellikle i\u015fe yarar.<\/p>\n<p>\u00d6nerilen yerle\u015ftirme, dosyan\u0131n ba\u015f\u0131nda, <code>#%PAM-1.0<\/code> sat\u0131r\u0131n\u0131n hemen alt\u0131na veya <code>auth substack password-auth<\/code> sat\u0131r\u0131n\u0131n \u00f6n\u00fcne eklemektir:<\/p>\n<pre><code class=\"language-\">#%PAM-1.0\nauth       required     pam_sepermit.so\nauth       substack     password-auth\nauth       include      postlogin\nauth       required     pam_google_authenticator.so  # Bu sat\u0131r\u0131 ekleyin\n<h2>... dosyan\u0131n geri kalan\u0131 ...<\/code><\/pre>\n<\/h2>\n<p>Baz\u0131 durumlarda, <code>auth substack password-auth<\/code> sat\u0131r\u0131 yerine <code>auth include common-auth<\/code> veya benzeri bir yap\u0131land\u0131rma g\u00f6rebilirsiniz. \u00d6nemli olan, Google Authenticator mod\u00fcl\u00fcn\u00fcn, kullan\u0131c\u0131n\u0131n kimlik do\u011frulamas\u0131 s\u0131ras\u0131nda \u00e7a\u011fr\u0131ld\u0131\u011f\u0131ndan emin olmakt\u0131r. <code>required<\/code> anahtar kelimesi, bu mod\u00fcl\u00fcn ba\u015far\u0131l\u0131 olmas\u0131 gerekti\u011fini belirtir. E\u011fer bu mod\u00fcl ba\u015far\u0131s\u0131z olursa (\u00f6rne\u011fin yanl\u0131\u015f kod girilirse), kimlik do\u011frulama i\u015flemi de ba\u015far\u0131s\u0131z olur.<\/p>\n<p><strong>Ek PAM Se\u00e7enekleri:<\/strong><br \/>\n<code>pam_google_authenticator.so<\/code> mod\u00fcl\u00fcne baz\u0131 se\u00e7enekler ekleyebilirsiniz:<br \/>\n*   <code>nullok<\/code>: Kullan\u0131c\u0131lar\u0131n <code>~\/.google_authenticator<\/code> dosyas\u0131 yoksa, PAM mod\u00fcl\u00fcn\u00fcn ba\u015far\u0131l\u0131 olmas\u0131na izin verir. Bu, MFA&#8217;y\u0131 iste\u011fe ba\u011fl\u0131 hale getirmek i\u00e7in kullan\u0131labilir, ancak g\u00fcvenlik a\u00e7\u0131s\u0131ndan \u00f6nerilmez. Genellikle kurulum s\u0131ras\u0131nda test ama\u00e7l\u0131 kullan\u0131labilir, ancak daha sonra kald\u0131r\u0131lmal\u0131d\u0131r.<br \/>\n*   <code>user_token_only<\/code>: Bu se\u00e7ene\u011fi kullan\u0131rsan\u0131z, kullan\u0131c\u0131dan sadece TOTP kodu istenir, parola istenmez. Bu, SSH anahtar\u0131 ile giri\u015f yapan ve ard\u0131ndan MFA ile ek do\u011frulama yapmak isteyen kullan\u0131c\u0131lar i\u00e7in kullan\u0131\u015fl\u0131 olabilir. Ancak bu senaryoda SSH anahtar\u0131 kimlik do\u011frulamas\u0131n\u0131 do\u011fru yap\u0131land\u0131rman\u0131z gerekir.<br \/>\n*   <code>secret=\/path\/to\/secret<\/code>: Varsay\u0131lan olarak s\u0131rlar kullan\u0131c\u0131n\u0131n <code>~\/.google_authenticator<\/code> dosyas\u0131nda saklan\u0131r. Bu se\u00e7enek ile farkl\u0131 bir yol belirtebilirsiniz.<\/p>\n<p>Basit bir kurulum i\u00e7in sadece <code>auth required pam_google_authenticator.so<\/code> sat\u0131r\u0131 yeterlidir.<\/p>\n<p>Dosyay\u0131 kaydedip kapat\u0131n (<code>Ctrl+X<\/code>, <code>Y<\/code>, <code>Enter<\/code> nano&#8217;da).<\/p>\n<h2>Ad\u0131m 3: SSH Yap\u0131land\u0131rmas\u0131n\u0131n Ayarlanmas\u0131<\/h2>\n<p>PAM mod\u00fcl\u00fcn\u00fc etkinle\u015ftirdikten sonra, SSH daemon&#8217;\u0131n\u0131n (sshd) bu mod\u00fcl\u00fc kullanmas\u0131 i\u00e7in yap\u0131land\u0131rma dosyas\u0131n\u0131 (<code>\/etc\/ssh\/sshd_config<\/code>) d\u00fczenlememiz gerekiyor.<\/p>\n<h3>sshd_config Dosyas\u0131n\u0131n Yedeklenmesi<\/h3>\n<p>Yine, de\u011fi\u015fiklik yapmadan \u00f6nce orijinal dosyay\u0131 yedekleyin:<\/p>\n<pre><code class=\"language-bash\">sudo cp \/etc\/ssh\/sshd_config \/etc\/ssh\/sshd_config.bak<\/code><\/pre>\n<h3>sshd_config Dosyas\u0131n\u0131n D\u00fczenlenmesi<\/h3>\n<p>\u015eimdi <code>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>A\u015fa\u011f\u0131daki sat\u0131rlar\u0131 bulup de\u011ferlerini de\u011fi\u015ftirmemiz veya yorum sat\u0131r\u0131 ise yorum i\u015faretini kald\u0131r\u0131p de\u011fi\u015ftirmemiz gerekiyor:<\/p>\n<p>1.  <strong><code>ChallengeResponseAuthentication yes<\/code><\/strong>: Bu ayar, SSH sunucusunun kimlik do\u011frulama s\u0131ras\u0131nda istemciden &#8220;challenge-response&#8221; (meydan okuma-yan\u0131t) tabanl\u0131 kimlik do\u011frulamas\u0131n\u0131 kabul etmesini sa\u011flar. Google Authenticator gibi mod\u00fcller bu mekanizmay\u0131 kullan\u0131r. Bu sat\u0131r\u0131 bulun ve de\u011ferini <code>yes<\/code> olarak ayarlay\u0131n. E\u011fer yorum sat\u0131r\u0131 (<code>#<\/code>) ise, yorum i\u015faretini kald\u0131r\u0131n.<\/p>\n<pre><code class=\"language-\">ChallengeResponseAuthentication yes<\/code><\/pre>\n<p>2.  <strong><code>UsePAM yes<\/code><\/strong>: Bu ayar, SSH daemon&#8217;\u0131n\u0131n kimlik do\u011frulamas\u0131 i\u00e7in PAM&#8217;i kullan\u0131p kullanmayaca\u011f\u0131n\u0131 belirler. CentOS 8&#8217;de bu genellikle varsay\u0131lan olarak <code>yes<\/code> olarak ayarlanm\u0131\u015ft\u0131r. Yine de kontrol edin ve <code>yes<\/code> oldu\u011fundan emin olun.<\/p>\n<pre><code class=\"language-\">UsePAM yes<\/code><\/pre>\n<p>3.  <strong><code>PasswordAuthentication no<\/code> (\u0130ste\u011fe Ba\u011fl\u0131 ama \u00d6nerilen)<\/strong>: MFA&#8217;y\u0131 zorunlu k\u0131lmak ve sadece parola ile giri\u015fi engellemek i\u00e7in <code>PasswordAuthentication<\/code> de\u011ferini <code>no<\/code> olarak ayarlayabilirsiniz. <strong>Ancak bu ad\u0131m\u0131, MFA kurulumunu ba\u015far\u0131l\u0131 bir \u015fekilde test ettikten sonra yapman\u0131z \u015fiddetle tavsiye edilir.<\/strong> Aksi takdirde, MFA kurulumunda bir hata olursa sunucunuza eri\u015femeyebilirsiniz.<\/p>\n<pre><code class=\"language-\">PasswordAuthentication no<\/code><\/pre>\n<p>4.  <strong><code>AuthenticationMethods<\/code> (Geli\u015fmi\u015f, \u0130ste\u011fe Ba\u011fl\u0131)<\/strong>: Bu ayar, hangi kimlik do\u011frulama y\u00f6ntemlerinin kabul edilece\u011fini a\u00e7\u0131k\u00e7a belirtmenizi sa\u011flar. G\u00fcvenli\u011fi art\u0131rmak i\u00e7in belirli bir s\u0131ralama veya kombinasyon belirleyebilirsiniz. \u00d6rne\u011fin, hem SSH anahtar\u0131 hem de MFA ile giri\u015f yapmak i\u00e7in:<\/p>\n<pre><code class=\"language-\">AuthenticationMethods publickey,keyboard-interactive<\/code><\/pre>\n<p>    veya sadece MFA ile parola giri\u015fi i\u00e7in:<\/p>\n<pre><code class=\"language-\">AuthenticationMethods password,keyboard-interactive<\/code><\/pre>\n<p>    <code>keyboard-interactive<\/code> burada Google Authenticator&#8217;\u0131 temsil eder. E\u011fer <code>publickey<\/code> ve <code>keyboard-interactive<\/code> kullan\u0131rsan\u0131z, kullan\u0131c\u0131 \u00f6nce SSH anahtar\u0131 ile do\u011frulan\u0131r, ard\u0131ndan MFA kodu istenir. E\u011fer <code>password<\/code> ve <code>keyboard-interactive<\/code> kullan\u0131rsan\u0131z, kullan\u0131c\u0131 \u00f6nce parolas\u0131yla do\u011frulan\u0131r, ard\u0131ndan MFA kodu istenir.<\/p>\n<p>    Bu ayar\u0131 \u015fimdilik eklemeyebilir veya sadece <code>keyboard-interactive<\/code> ekleyerek test edebilirsiniz. En basit senaryoda, <code>ChallengeResponseAuthentication yes<\/code> ve <code>UsePAM yes<\/code> yeterli olacakt\u0131r.<\/p>\n<p>5.  <strong><code>PermitRootLogin no<\/code> (G\u00fcvenlik \u0130pu\u00e7lar\u0131)<\/strong>: Root kullan\u0131c\u0131s\u0131 ile do\u011frudan SSH eri\u015fimini kapatmak iyi bir g\u00fcvenlik uygulamas\u0131d\u0131r. E\u011fer a\u00e7\u0131ksa, <code>no<\/code> olarak ayarlay\u0131n ve normal bir kullan\u0131c\u0131 ile giri\u015f yap\u0131p <code>sudo<\/code> kullan\u0131n.<\/p>\n<pre><code class=\"language-\">PermitRootLogin no<\/code><\/pre>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydedip kapat\u0131n.<\/p>\n<h3>SSH Servisini Yeniden Ba\u015flatma<\/h3>\n<p>Yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin etkin 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>Servisin durumunu kontrol ederek herhangi bir hata olup olmad\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status sshd<\/code><\/pre>\n<p>veya daha detayl\u0131 loglar i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo journalctl -u sshd<\/code><\/pre>\n<h2>Ad\u0131m 4: Her Kullan\u0131c\u0131 \u0130\u00e7in Google Authenticator Kurulumu<\/h2>\n<p>PAM ve SSH yap\u0131land\u0131rmalar\u0131n\u0131 tamamlad\u0131ktan sonra, MFA kullanmak isteyen her bir kullan\u0131c\u0131n\u0131n kendi hesab\u0131nda Google Authenticator&#8217;\u0131 yap\u0131land\u0131rmas\u0131 gerekir. Bu ad\u0131m, her kullan\u0131c\u0131n\u0131n kendi gizli anahtar\u0131n\u0131 olu\u015fturmas\u0131n\u0131 ve bunu ak\u0131ll\u0131 telefonundaki Google Authenticator uygulamas\u0131yla e\u015fle\u015ftirmesini sa\u011flar.<\/p>\n<p>MFA kurmak istedi\u011finiz kullan\u0131c\u0131 hesab\u0131na SSH ile ba\u011flan\u0131n (hen\u00fcz MFA aktif olmad\u0131\u011f\u0131 i\u00e7in sadece parola veya anahtar ile giri\u015f yapabilirsiniz):<\/p>\n<pre><code class=\"language-bash\">ssh kullanici_adi@sunucu_ip_adresi<\/code><\/pre>\n<p>Oturum a\u00e7t\u0131ktan sonra, a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">google-authenticator<\/code><\/pre>\n<p>Komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda size bir dizi soru sorulacakt\u0131r:<\/p>\n<p>1.  <strong><code>Do you want authentication tokens to be time-based (y\/n)<\/code><\/strong>: Zaman Tabanl\u0131 Tek Kullan\u0131ml\u0131k Parola (TOTP) kullanmak i\u00e7in <code>y<\/code> yaz\u0131p Enter tu\u015funa bas\u0131n. Bu, her 30 saniyede bir yeni kod \u00fcreten standart y\u00f6ntemdir.<\/p>\n<pre><code class=\"language-\">Do you want authentication tokens to be time-based (y\/n) y<\/code><\/pre>\n<p>2.  Bu ad\u0131mdan sonra, terminalinizde bir QR kodu, gizli anahtar (Secret Key), do\u011frulama kodu (Verification Code) ve acil durum kurtarma kodlar\u0131 (Emergency scratch codes) g\u00f6r\u00fcnt\u00fclenecektir.<\/p>\n<p>    *   <strong>QR Kodu:<\/strong> Ak\u0131ll\u0131 telefonunuzdaki Google Authenticator uygulamas\u0131n\u0131 a\u00e7\u0131n, yeni bir hesap ekleme se\u00e7ene\u011fini se\u00e7in (genellikle &#8216;+&#8217; simgesi) ve QR kodunu taray\u0131n. Uygulama otomatik olarak sunucunuz i\u00e7in bir giri\u015f olu\u015fturacak ve kodlar\u0131 \u00fcretmeye ba\u015flayacakt\u0131r.<br \/>\n    *   <strong>Secret Key:<\/strong> E\u011fer QR kodunu tarayam\u0131yorsan\u0131z (\u00f6rne\u011fin terminalden kopyalanam\u0131yorsa), bu anahtar\u0131 manuel olarak uygulamaya girebilirsiniz.<br \/>\n    *   <strong>Emergency scratch codes:<\/strong> Bu kodlar <strong>\u00e7ok \u00f6nemlidir<\/strong>. E\u011fer ak\u0131ll\u0131 telefonunuzu kaybeder, uygulamay\u0131 siler veya bir \u015fekilde TOTP kodlar\u0131na eri\u015fiminizi kaybederseniz, bu kodlardan birini kullanarak tek seferlik giri\u015f yapabilirsiniz. <strong>Bu kodlar\u0131 g\u00fcvenli bir yerde saklay\u0131n ve asla kaybetmeyin!<\/strong> Her kod tek kullan\u0131ml\u0131kt\u0131r.<\/p>\n<p>    <strong>Ekran \u00e7\u0131kt\u0131s\u0131 \u00f6rne\u011fi (ger\u00e7ek kodlar farkl\u0131 olacakt\u0131r):<\/strong><\/p>\n<pre><code class=\"language-\">Your new secret key is: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n    Your verification code is 123456\n    Your emergency scratch codes are:\n      12345678\n      23456789\n      34567890\n      45678901\n      56789012\n\n    Do you want to update your \"~\/.google_authenticator\" file (y\/n)<\/code><\/pre>\n<p>3.  <strong><code>Do you want to update your \"~\/.google_authenticator\" file (y\/n)<\/code><\/strong>: Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydetmek i\u00e7in <code>y<\/code> yaz\u0131p Enter tu\u015funa bas\u0131n. Bu, kullan\u0131c\u0131n\u0131n ev dizininde (<code>~\/.google_authenticator<\/code>) gizli anahtar\u0131 ve di\u011fer ayarlar\u0131 i\u00e7eren bir dosya olu\u015fturur.<\/p>\n<pre><code class=\"language-\">Do you want to update your \"~\/.google_authenticator\" file (y\/n) y<\/code><\/pre>\n<p>4.  <strong><code>Do you want to disallow multiple uses of the same authentication token (y\/n)<\/code><\/strong>: Ayn\u0131 do\u011frulama kodunun birden fazla kullan\u0131m\u0131n\u0131 engellemek i\u00e7in <code>y<\/code> yaz\u0131p Enter tu\u015funa bas\u0131n. Bu, yeniden oynatma sald\u0131r\u0131lar\u0131na (replay attacks) kar\u015f\u0131 koruma sa\u011flar. \u015eiddetle tavsiye edilir.<\/p>\n<pre><code class=\"language-\">Do you want to disallow multiple uses of the same authentication token (y\/n) y<\/code><\/pre>\n<p>5.  <strong><code>Do you want to enable time-base throttling (y\/n)<\/code><\/strong>: Brute-force sald\u0131r\u0131lar\u0131n\u0131 \u00f6nlemek i\u00e7in zaman tabanl\u0131 k\u0131s\u0131tlama (throttling) etkinle\u015ftirmek isteyip istemedi\u011finiz sorulur. \u00d6rne\u011fin, 30 saniye i\u00e7inde 3&#8217;ten fazla yanl\u0131\u015f kod girilirse, sistem 30 saniye boyunca kimlik do\u011frulama denemelerini reddedebilir. G\u00fcvenlik i\u00e7in <code>y<\/code> yaz\u0131p Enter tu\u015funa bas\u0131n.<\/p>\n<pre><code class=\"language-\">Do you want to enable time-base throttling (y\/n) y<\/code><\/pre>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, kullan\u0131c\u0131n\u0131n Google Authenticator yap\u0131land\u0131rmas\u0131 tamamlanm\u0131\u015f olacakt\u0131r. Bu i\u015flemi, MFA ile giri\u015f yapmak isteyen her kullan\u0131c\u0131 i\u00e7in tekrarlaman\u0131z gerekir.<\/p>\n<h2>Ad\u0131m 5: MFA Kurulumunun Test Edilmesi<\/h2>\n<p>T\u00fcm yap\u0131land\u0131rmalar\u0131 tamamlad\u0131ktan sonra, MFA kurulumunun do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in test etmeniz \u00e7ok \u00f6nemlidir. <strong>Bu testi, mevcut SSH oturumunuzu kapatmadan yeni bir terminal penceresinde yap\u0131n.<\/strong> B\u00f6ylece bir sorun \u00e7\u0131kmas\u0131 durumunda mevcut oturumunuzdan geri d\u00f6n\u00fc\u015f yapabilirsiniz.<\/p>\n<p>Yeni bir terminal penceresi a\u00e7\u0131n ve MFA&#8217;y\u0131 yap\u0131land\u0131rd\u0131\u011f\u0131n\u0131z kullan\u0131c\u0131 ile sunucuya SSH ile ba\u011flanmaya \u00e7al\u0131\u015f\u0131n:<\/p>\n<pre><code class=\"language-bash\">ssh kullanici_adi@sunucu_ip_adresi<\/code><\/pre>\n<p>Ba\u011flant\u0131 denemesinden sonra, a\u015fa\u011f\u0131daki gibi bir s\u0131ra izlenmelidir:<\/p>\n<p>1.  <strong><code>Verification code:<\/code><\/strong> veya <strong><code>Password:<\/code><\/strong> (E\u011fer <code>AuthenticationMethods<\/code> ayar\u0131n\u0131 yapmad\u0131ysan\u0131z ve <code>PasswordAuthentication yes<\/code> ise, \u00f6nce parola veya kod sorulabilir. PAM dosyas\u0131ndaki s\u0131raya g\u00f6re de\u011fi\u015fir.)<br \/>\n    *   E\u011fer ilk olarak <code>Verification code:<\/code> istenirse, ak\u0131ll\u0131 telefonunuzdaki Google Authenticator uygulamas\u0131ndan ge\u00e7erli TOTP kodunu girin.<br \/>\n    *   E\u011fer ilk olarak <code>Password:<\/code> istenirse, SSH parolan\u0131z\u0131 girin.<\/p>\n<p>2.  \u0130kinci kimlik do\u011frulama fakt\u00f6r\u00fc istenecektir. \u00d6rne\u011fin, e\u011fer \u00f6nce parola girdiyseniz, \u015fimdi <code>Verification code:<\/code> istenecektir. E\u011fer \u00f6nce TOTP kodu girdiyseniz, \u015fimdi <code>Password:<\/code> istenecektir.<\/p>\n<p>    *   \u0130kinci fakt\u00f6r\u00fc do\u011fru \u015fekilde girin.<\/p>\n<p>E\u011fer her iki fakt\u00f6r\u00fc de do\u011fru girdiyseniz, ba\u015far\u0131l\u0131 bir \u015fekilde sunucuya SSH ile ba\u011flanman\u0131z gerekir.<\/p>\n<p><strong>Olas\u0131 Senaryolar ve Beklentiler:<\/strong><\/p>\n<p>*   <strong><code>AuthenticationMethods password,keyboard-interactive<\/code><\/strong> kullan\u0131ld\u0131ysa: \u00d6nce parola, sonra TOTP kodu istenir.<br \/>\n*   <strong><code>AuthenticationMethods publickey,keyboard-interactive<\/code><\/strong> kullan\u0131ld\u0131ysa: \u00d6nce SSH anahtar\u0131 ile kimlik do\u011frulama yap\u0131l\u0131r, ba\u015far\u0131l\u0131 olursa TOTP kodu istenir.<br \/>\n*   Sadece <strong><code>ChallengeResponseAuthentication yes<\/code><\/strong> ve <strong><code>UsePAM yes<\/code><\/strong> ayarlar\u0131 yap\u0131ld\u0131ysa ve PAM dosyas\u0131nda <code>auth required pam_google_authenticator.so<\/code> en \u00fcste yak\u0131nsa: Genellikle \u00f6nce TOTP kodu, sonra parola istenir.<\/p>\n<p>E\u011fer ba\u015far\u0131l\u0131 bir \u015fekilde giri\u015f yapabiliyorsan\u0131z, MFA kurulumunuz do\u011fru \u00e7al\u0131\u015f\u0131yor demektir. \u015eimdi isterseniz <code>sshd_config<\/code> dosyas\u0131ndaki <code>PasswordAuthentication no<\/code> ayar\u0131n\u0131 etkinle\u015ftirerek sadece MFA ile giri\u015f yapmay\u0131 zorunlu k\u0131labilirsiniz (veya anahtar + MFA kombinasyonunu). Bu de\u011fi\u015fikli\u011fi yapt\u0131ktan sonra <code>sudo systemctl restart sshd<\/code> komutunu \u00e7al\u0131\u015ft\u0131rmay\u0131 unutmay\u0131n ve tekrar test edin.<\/p>\n<h2>Geli\u015fmi\u015f Yap\u0131land\u0131rmalar ve En \u0130yi Uygulamalar<\/h2>\n<p>MFA kurulumunu tamamlad\u0131ktan sonra, g\u00fcvenli\u011fi daha da art\u0131rmak ve kullan\u0131m senaryonuza g\u00f6re optimize etmek i\u00e7in baz\u0131 geli\u015fmi\u015f yap\u0131land\u0131rmalar ve en iyi uygulamalar\u0131 g\u00f6z \u00f6n\u00fcnde bulundurabilirsiniz.<\/p>\n<h3>Yaln\u0131zca MFA ile Giri\u015f<\/h3>\n<p>E\u011fer sunucunuza sadece SSH anahtar\u0131 ve\/veya MFA ile eri\u015filmesini istiyorsan\u0131z, <code>sshd_config<\/code> dosyas\u0131nda <code>PasswordAuthentication no<\/code> ayar\u0131n\u0131 kullanmak \u00f6nemlidir.<\/p>\n<pre><code class=\"language-bash\"># \/etc\/ssh\/sshd_config\nPasswordAuthentication no<\/code><\/pre>\n<p>Bununla birlikte, <code>AuthenticationMethods<\/code> ayar\u0131n\u0131 da kullanarak belirli kimlik do\u011frulama kombinasyonlar\u0131n\u0131 zorunlu k\u0131labilirsiniz:<\/p>\n<p>*   <strong>Sadece SSH Anahtar\u0131 ve MFA (\u00f6nerilen en g\u00fcvenli y\u00f6ntem):<\/strong><\/p>\n<pre><code class=\"language-bash\">AuthenticationMethods publickey,keyboard-interactive<\/code><\/pre>\n<p>    Bu yap\u0131land\u0131rmada, kullan\u0131c\u0131 \u00f6nce ge\u00e7erli bir SSH anahtar\u0131 ile kimlik do\u011frulamas\u0131 yapmal\u0131d\u0131r. Ba\u015far\u0131l\u0131 olursa, ard\u0131ndan Google Authenticator taraf\u0131ndan \u00fcretilen TOTP kodu istenir. Her iki fakt\u00f6r de ba\u015far\u0131l\u0131 olursa eri\u015fim izni verilir.<\/p>\n<p>*   <strong>Sadece Parola ve MFA:<\/strong><\/p>\n<pre><code class=\"language-bash\">AuthenticationMethods password,keyboard-interactive<\/code><\/pre>\n<p>    Bu, kullan\u0131c\u0131n\u0131n \u00f6nce SSH parolas\u0131n\u0131 girmesini, ard\u0131ndan TOTP kodunu girmesini gerektirir. <code>PasswordAuthentication no<\/code> ayar\u0131n\u0131 yapmad\u0131\u011f\u0131n\u0131z s\u00fcrece, sadece parola ile giri\u015f de m\u00fcmk\u00fcn olabilir. Bu nedenle, bu kombinasyonu kullan\u0131yorsan\u0131z <code>PasswordAuthentication no<\/code> ayar\u0131 \u00f6nemlidir.<\/p>\n<h3>Public Key Kimlik Do\u011frulamas\u0131 ile Kombinasyon<\/h3>\n<p>SSH anahtarlar\u0131, parola tabanl\u0131 kimlik do\u011frulamas\u0131na g\u00f6re daha g\u00fcvenli kabul edilir. MFA&#8217;y\u0131 SSH anahtarlar\u0131 ile birle\u015ftirmek, g\u00fcvenlik seviyesini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r. Yukar\u0131da belirtildi\u011fi gibi, <code>AuthenticationMethods publickey,keyboard-interactive<\/code> ayar\u0131 bu kombinasyonu sa\u011flar. Bu durumda, sald\u0131rgan\u0131n hem kullan\u0131c\u0131n\u0131n \u00f6zel SSH anahtar\u0131na hem de ak\u0131ll\u0131 telefonuna eri\u015fmesi gerekir ki bu \u00e7ok zordur.<\/p>\n<h3>G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h3>\n<p>*   <strong>Acil Durum Kodlar\u0131n\u0131 G\u00fcvenli Saklama:<\/strong> <code>google-authenticator<\/code> komutu taraf\u0131ndan verilen acil durum kurtarma kodlar\u0131n\u0131 fiziksel olarak g\u00fcvenli bir yerde (\u00f6rne\u011fin bir kasada veya \u015fifreli bir depolama biriminde) saklay\u0131n. Bu kodlar tek kullan\u0131ml\u0131kt\u0131r ve eri\u015fiminizi kaybetti\u011finizde cankurtaran\u0131n\u0131z olacakt\u0131r. Dijital ortamda saklarken \u015fifreledi\u011finizden emin olun.<br \/>\n*   <strong>NTP Senkronizasyonunun \u00d6nemi:<\/strong> TOTP, zaman senkronizasyonuna dayand\u0131\u011f\u0131 i\u00e7in sunucunuzun ve ak\u0131ll\u0131 telefonunuzun zamanlar\u0131n\u0131n do\u011fru oldu\u011fundan emin olun. Sunucunuzda <code>chronyd<\/code> veya <code>ntpd<\/code> gibi bir NTP istemcisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve do\u011fru zaman sunucular\u0131yla senkronize oldu\u011fundan emin olun. Zaman fark\u0131 birka\u00e7 dakikadan fazla olursa kodlar ge\u00e7ersiz olacakt\u0131r.<\/p>\n<pre><code class=\"language-bash\">timedatectl status<\/code><\/pre>\n<p>    komutu ile zaman durumunu kontrol edebilirsiniz.<br \/>\n*   <strong>Loglar\u0131 \u0130zleme:<\/strong> SSH oturum a\u00e7ma denemelerini ve kimlik do\u011frulama hatalar\u0131n\u0131 d\u00fczenli olarak <code>\/var\/log\/secure<\/code> dosyas\u0131nda izleyin. Bu, potansiyel sald\u0131r\u0131 giri\u015fimlerini veya yap\u0131land\u0131rma sorunlar\u0131n\u0131 tespit etmenize yard\u0131mc\u0131 olabilir.<\/p>\n<pre><code class=\"language-bash\">sudo tail -f \/var\/log\/secure<\/code><\/pre>\n<p>*   <strong>Fail2ban Entegrasyonu:<\/strong> Fail2ban, ba\u015far\u0131s\u0131z oturum a\u00e7ma denemelerini izleyen ve belirli bir s\u00fcre boyunca IP adreslerini engelleyen bir g\u00fcvenlik arac\u0131d\u0131r. MFA ile birlikte kullan\u0131ld\u0131\u011f\u0131nda, brute-force sald\u0131r\u0131lar\u0131na kar\u015f\u0131 ek bir koruma katman\u0131 sa\u011flar. <code>google-authenticator<\/code> mod\u00fcl\u00fc, ba\u015far\u0131s\u0131z denemeleri loglad\u0131\u011f\u0131 i\u00e7in Fail2ban bunu tespit edip engelleyebilir.<br \/>\n*   <strong>Root ile Do\u011frudan SSH Eri\u015fimini Kapatma:<\/strong> G\u00fcvenlik a\u00e7\u0131s\u0131ndan, <code>root<\/code> kullan\u0131c\u0131s\u0131 ile do\u011frudan SSH eri\u015fimi sa\u011flamak yerine, normal bir kullan\u0131c\u0131 ile giri\u015f yap\u0131p <code>sudo<\/code> kullanarak yetki y\u00fckseltmek her zaman daha g\u00fcvenlidir. <code>PermitRootLogin no<\/code> ayar\u0131n\u0131 <code>sshd_config<\/code> dosyas\u0131nda kullan\u0131n.<br \/>\n*   <strong>Varsay\u0131lan SSH Portunu De\u011fi\u015ftirme:<\/strong> Varsay\u0131lan SSH portu olan 22&#8217;yi de\u011fi\u015ftirmek, otomatik botlar\u0131n ve basit taramalar\u0131n hedefi olmaktan ka\u00e7\u0131nman\u0131za yard\u0131mc\u0131 olabilir. Ancak bu, geli\u015fmi\u015f sald\u0131r\u0131lara kar\u015f\u0131 tek ba\u015f\u0131na bir koruma de\u011fildir. Portu de\u011fi\u015ftirdikten sonra firewall (firewalld) ayarlar\u0131n\u0131z\u0131 g\u00fcncellemeyi unutmay\u0131n.<\/p>\n<h2>Sorun Giderme<\/h2>\n<p>MFA kurulumu s\u0131ras\u0131nda veya sonras\u0131nda baz\u0131 sorunlarla kar\u015f\u0131la\u015fabilirsiniz. \u0130\u015fte yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>*   <strong><code>Permission denied (keyboard-interactive)<\/code> Hatas\u0131:<\/strong><br \/>\n    *   Bu genellikle PAM yap\u0131land\u0131rmas\u0131nda (<code>\/etc\/pam.d\/sshd<\/code>) veya SSH yap\u0131land\u0131rmas\u0131nda (<code>\/etc\/ssh\/sshd_config<\/code>) bir sorun oldu\u011funu g\u00f6sterir.<br \/>\n    *   <code>ChallengeResponseAuthentication yes<\/code> ve <code>UsePAM yes<\/code> ayarlar\u0131n\u0131n <code>sshd_config<\/code> dosyas\u0131nda do\u011fru oldu\u011fundan emin olun.<br \/>\n    *   <code>\/etc\/pam.d\/sshd<\/code> dosyas\u0131ndaki <code>auth required pam_google_authenticator.so<\/code> sat\u0131r\u0131n\u0131n do\u011fru yerde oldu\u011fundan ve yaz\u0131m hatas\u0131 i\u00e7ermedi\u011finden emin olun.<br \/>\n    *   <code>sshd<\/code> servisini yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zdan emin olun: <code>sudo systemctl restart sshd<\/code>.<br \/>\n    *   Sunucu loglar\u0131n\u0131 kontrol edin: <code>sudo tail -f \/var\/log\/secure<\/code> veya <code>sudo journalctl -u sshd<\/code>.<\/p>\n<p>*   <strong>Yanl\u0131\u015f TOTP Kodu Hatas\u0131:<\/strong><br \/>\n    *   <strong>Zaman Senkronizasyonu:<\/strong> En yayg\u0131n nedenlerden biri zaman senkronizasyonu sorunlar\u0131d\u0131r. Sunucunuzun ve ak\u0131ll\u0131 telefonunuzun zamanlar\u0131n\u0131n do\u011fru oldu\u011fundan emin olun. Ak\u0131ll\u0131 telefonunuzun otomatik zaman ayarl\u0131 oldu\u011fundan ve sunucunuzun NTP ile senkronize oldu\u011fundan emin olun (<code>timedatectl status<\/code> komutunu kontrol edin).<br \/>\n    *   <strong>Yanl\u0131\u015f Kod:<\/strong> Google Authenticator uygulamas\u0131nda do\u011fru sunucu i\u00e7in do\u011fru kodu girdi\u011finizden emin olun. Kodlar her 30 saniyede bir de\u011fi\u015fir, bu y\u00fczden kodu h\u0131zl\u0131 bir \u015fekilde girmeniz gerekir.<br \/>\n    *   <strong>Birden Fazla Deneme:<\/strong> <code>google-authenticator<\/code> kurulumunda <code>disallow multiple uses<\/code> ve <code>time-base throttling<\/code> ayarlar\u0131n\u0131 etkinle\u015ftirdiyseniz, ard\u0131\u015f\u0131k yanl\u0131\u015f denemeler bir s\u00fcre engellemeye neden olabilir. Birka\u00e7 dakika bekleyip tekrar deneyin.<\/p>\n<p>*   <strong>PAM Yap\u0131land\u0131rma Hatalar\u0131:<\/strong><br \/>\n    *   <code>\/etc\/pam.d\/sshd<\/code> dosyas\u0131nda yanl\u0131\u015f bir sat\u0131r eklemek veya mevcut bir sat\u0131r\u0131 silmek, SSH hizmetinin ba\u015flamamas\u0131na neden olabilir.<br \/>\n    *   E\u011fer SSH servisi ba\u015flamazsa, <code>sudo systemctl status sshd<\/code> komutu hata mesaj\u0131n\u0131 g\u00f6sterecektir.<br \/>\n    *   E\u011fer bu dosyada bir hata yapt\u0131ysan\u0131z ve SSH ile giri\u015f yapam\u0131yorsan\u0131z, sunucuya fiziksel eri\u015fiminiz veya bir sanal konsol eri\u015fiminiz olmas\u0131 gerekebilir. Bu nedenle her zaman yedekleme yap\u0131n ve testleri mevcut oturumu kapatmadan yeni bir pencerede yap\u0131n.<br \/>\n    *   Yedekledi\u011finiz dosyay\u0131 geri y\u00fckleyebilirsiniz: <code>sudo cp \/etc\/pam.d\/sshd.bak \/etc\/pam.d\/sshd<\/code>.<\/p>\n<p>*   <strong><code>~\/.google_authenticator<\/code> Dosyas\u0131 Yok:<\/strong><br \/>\n    *   MFA kurmak isteyen her kullan\u0131c\u0131n\u0131n kendi hesab\u0131nda <code>google-authenticator<\/code> komutunu \u00e7al\u0131\u015ft\u0131rmas\u0131 ve sorulara <code>y<\/code> yan\u0131t\u0131 vererek dosyay\u0131 olu\u015fturmas\u0131 gerekir.<br \/>\n    *   Dosyan\u0131n izinleri de \u00f6nemlidir. Varsay\u0131lan olarak <code>google-authenticator<\/code> komutu dosyay\u0131 do\u011fru izinlerle (<code>0600<\/code>) olu\u015fturur. E\u011fer izinler yanl\u0131\u015fsa, PAM mod\u00fcl\u00fc dosyay\u0131 okuyamayabilir.<\/p>\n<p>*   <strong><code>sshd<\/code> Servisini Yeniden Ba\u015flatmay\u0131 Unutma:<\/strong><br \/>\n    *   PAM veya SSH yap\u0131land\u0131rma dosyalar\u0131nda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin etkin olmas\u0131 i\u00e7in <code>sudo systemctl restart sshd<\/code> komutunu \u00e7al\u0131\u015ft\u0131rman\u0131z gerekti\u011fini unutmay\u0131n.<\/p>\n<p>*   <strong>Log Dosyalar\u0131:<\/strong><br \/>\n    *   <code>sudo tail -f \/var\/log\/secure<\/code>: SSH oturum a\u00e7ma denemeleri, kimlik do\u011frulama hatalar\u0131 ve PAM ile ilgili mesajlar burada bulunur.<br \/>\n    *   <code>sudo journalctl -u sshd<\/code>: SSH daemon&#8217;\u0131n\u0131n ba\u015flatma ve \u00e7al\u0131\u015fma zaman\u0131 loglar\u0131n\u0131 g\u00f6sterir.<br \/>\n    *   Bu loglar, sorun giderme s\u00fcrecinde size \u00e7ok de\u011ferli bilgiler sa\u011flayacakt\u0131r.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>CentOS 8 \u00fczerinde SSH i\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) kurulumu, 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, Google Authenticator tabanl\u0131 TOTP kullanarak, kullan\u0131c\u0131lar\u0131n sadece parola veya SSH anahtar\u0131 ile de\u011fil, ayn\u0131 zamanda ak\u0131ll\u0131 telefonlar\u0131ndaki tek kullan\u0131ml\u0131k kodlarla da kimlik do\u011frulamas\u0131 yapmalar\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<p>Kurulum, gerekli paketlerin y\u00fcklenmesi, PAM mod\u00fcl\u00fcn\u00fcn yap\u0131land\u0131r\u0131lmas\u0131, SSH daemon&#8217;\u0131n\u0131n ayarlanmas\u0131 ve her kullan\u0131c\u0131 i\u00e7in Google Authenticator&#8217;\u0131n ki\u015fisel olarak yap\u0131land\u0131r\u0131lmas\u0131n\u0131 i\u00e7erir. Bu ad\u0131mlar\u0131 dikkatlice takip ederek, sunucular\u0131n\u0131z\u0131 potansiyel siber sald\u0131r\u0131lara kar\u015f\u0131 daha diren\u00e7li hale getirebilirsiniz.<\/p>\n<p>MFA, \u00f6zellikle parola zay\u0131fl\u0131klar\u0131 veya \u00e7al\u0131nan kimlik bilgileri gibi yayg\u0131n g\u00fcvenlik tehditlerine kar\u015f\u0131 ek bir koruma katman\u0131 sa\u011flar. Ancak, MFA tek ba\u015f\u0131na tam bir g\u00fcvenlik \u00e7\u00f6z\u00fcm\u00fc de\u011fildir. G\u00fc\u00e7l\u00fc parolalar, SSH anahtar\u0131 tabanl\u0131 kimlik do\u011frulama, d\u00fczenli g\u00fcvenlik g\u00fcncellemeleri, g\u00fcvenlik duvar\u0131 kurallar\u0131, Fail2ban gibi ek g\u00fcvenlik ara\u00e7lar\u0131 ve d\u00fczenli log izleme gibi di\u011fer en iyi uygulamalarla birlikte kullan\u0131ld\u0131\u011f\u0131nda maksimum fayda sa\u011flar.<\/p>\n<p>Unutmay\u0131n, g\u00fcvenlik bir s\u00fcre\u00e7tir, tek seferlik bir kurulum de\u011fildir. Sunucular\u0131n\u0131z\u0131n ve kullan\u0131c\u0131lar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flamak i\u00e7in s\u00fcrekli dikkatli olmak ve g\u00fcvenlik \u00f6nlemlerini g\u00fcncel tutmak hayati \u00f6nem ta\u015f\u0131r. Bu rehber, CentOS 8 \u00fczerindeki SSH g\u00fcvenli\u011finizi bir sonraki seviyeye ta\u015f\u0131man\u0131z i\u00e7in sa\u011flam bir temel sunmaktad\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"CentOS 8 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, sunucu g\u00fcvenli\u011fi her zama","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":[241],"tags":[],"class_list":{"0":"post-30378","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","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>CentOS 8 \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\/centos-8-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=\"CentOS 8 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu\" \/>\n<meta property=\"og:description\" content=\"CentOS 8 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, sunucu g\u00fcvenli\u011fi her zama\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/centos-8-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-09-27T00:41:06+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=\"21 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"CentOS 8 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu\",\"datePublished\":\"2025-09-27T00:41:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/\"},\"wordCount\":3661,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/centos-8-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\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/\",\"name\":\"CentOS 8 \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-09-27T00:41:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-8-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\":\"CentOS 8 \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":"CentOS 8 \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\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/","og_locale":"tr_TR","og_type":"article","og_title":"CentOS 8 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu","og_description":"CentOS 8 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, sunucu g\u00fcvenli\u011fi her zama","og_url":"https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-27T00:41:06+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"21 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"CentOS 8 \u00dczerinde SSH \u0130\u00e7in \u00c7ok Fakt\u00f6rl\u00fc Kimlik Do\u011frulama (MFA) Kurulumu","datePublished":"2025-09-27T00:41:06+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/"},"wordCount":3661,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/centos-8-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\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/","url":"https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/","name":"CentOS 8 \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-09-27T00:41:06+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/centos-8-uzerinde-ssh-icin-cok-faktorlu-kimlik-dogrulama-mfa-kurulumu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/centos-8-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":"CentOS 8 \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\/30378","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=30378"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30378\/revisions"}],"predecessor-version":[{"id":30379,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30378\/revisions\/30379"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30378"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30378"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}