{"id":31413,"date":"2025-10-09T18:41:31","date_gmt":"2025-10-09T15:41:31","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=31413"},"modified":"2025-10-09T18:41:31","modified_gmt":"2025-10-09T15:41:31","slug":"ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/","title":{"rendered":"Ubuntu 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir?"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir?<\/h2>\n<p>G\u00fcvenli Dosya Transfer Protokol\u00fc (SFTP), sunucular aras\u0131nda dosya transferi i\u00e7in g\u00fcvenli ve g\u00fcvenilir bir y\u00f6ntem sunar. Geleneksel FTP&#8217;nin aksine, SFTP verileri \u015fifreleyerek yetkisiz eri\u015fime kar\u015f\u0131 korur. \u00d6zellikle web bar\u0131nd\u0131rma, geli\u015ftirme ortamlar\u0131 veya hassas verilerin transfer edildi\u011fi senaryolarda, kullan\u0131c\u0131lar\u0131n sunucuya tam kabuk (shell) eri\u015fimi olmaks\u0131z\u0131n yaln\u0131zca dosya transferi yapabilmelerini sa\u011flamak \u00f6nemli bir g\u00fcvenlik gereklili\u011fidir. Bu, &#8220;en az ayr\u0131cal\u0131k&#8221; prensibini uygulayarak potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 minimize eder.<\/p>\n<p>Ubuntu 16.04 gibi Linux tabanl\u0131 sistemlerde, OpenSSH sunucusu SFTP i\u015flevselli\u011fini dahili olarak sunar. Bu makalede, OpenSSH&#8217;nin chroot (k\u00f6k dizini k\u0131s\u0131tlamas\u0131) \u00f6zelli\u011fi kullan\u0131larak, belirli kullan\u0131c\u0131lar\u0131n yaln\u0131zca kendi atanan dizinleri i\u00e7inde SFTP arac\u0131l\u0131\u011f\u0131yla dosya transferi yapabilmeleri, ancak sunucuya SSH \u00fczerinden komut \u00e7al\u0131\u015ft\u0131rarak eri\u015fememeleri i\u00e7in ad\u0131m ad\u0131m bir rehber sunulacakt\u0131r. Bu kurulum, sunucunuzun g\u00fcvenli\u011fini art\u0131r\u0131rken, yetkilendirilmi\u015f kullan\u0131c\u0131lar i\u00e7in gerekli dosya transferi yeteneklerini sa\u011flaman\u0131za olanak tan\u0131r.<\/p>\n<h3>Neden Kabuk Eri\u015fimi Olmadan SFTP?<\/h3>\n<p>Bir sunucuda birden fazla kullan\u0131c\u0131n\u0131n veya m\u00fc\u015fterinin dosya depolamas\u0131 veya web sitelerini bar\u0131nd\u0131rmas\u0131 gerekti\u011finde, her kullan\u0131c\u0131ya tam kabuk eri\u015fimi vermek ciddi g\u00fcvenlik riskleri ta\u015f\u0131r. Tam kabuk eri\u015fimi olan bir kullan\u0131c\u0131, sunucuda komutlar \u00e7al\u0131\u015ft\u0131rabilir, sistem yap\u0131land\u0131rmalar\u0131n\u0131 de\u011fi\u015ftirebilir ve hatta di\u011fer kullan\u0131c\u0131lar\u0131n verilerine eri\u015febilir. Bu durum, yanl\u0131\u015fl\u0131kla yap\u0131lan hatalardan k\u00f6t\u00fc niyetli sald\u0131r\u0131lara kadar \u00e7e\u015fitli g\u00fcvenlik ihlallerine yol a\u00e7abilir.<\/p>\n<p>Kabuk eri\u015fimi olmadan SFTP&#8217;yi etkinle\u015ftirmenin temel faydalar\u0131 \u015funlard\u0131r:<\/p>\n<p>*   <strong>G\u00fcvenlik:<\/strong> Kullan\u0131c\u0131lar\u0131 yaln\u0131zca belirli bir dizinle s\u0131n\u0131rlar ve sistemde komut \u00e7al\u0131\u015ft\u0131rmalar\u0131n\u0131 engeller. Bu, sald\u0131r\u0131 y\u00fczeyini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.<br \/>\n*   <strong>\u0130zolasyon:<\/strong> Her kullan\u0131c\u0131 kendi izole edilmi\u015f ortam\u0131nda \u00e7al\u0131\u015f\u0131r, bu da bir kullan\u0131c\u0131n\u0131n g\u00fcvenli\u011finin ihlal edilmesi durumunda di\u011fer kullan\u0131c\u0131lar\u0131 veya sunucunun genel b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc etkileme riskini azalt\u0131r.<br \/>\n*   <strong>Basitlik:<\/strong> Kullan\u0131c\u0131lar i\u00e7in sadece dosya y\u00fckleme\/indirme i\u015flevselli\u011fi sa\u011flar, bu da karma\u015f\u0131k komut sat\u0131r\u0131 aray\u00fczleri ile u\u011fra\u015fmalar\u0131na gerek kalmamas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong>Uyumluluk:<\/strong> Bir\u00e7ok denetim ve g\u00fcvenlik standard\u0131, sunucuya do\u011frudan kabuk eri\u015fimini k\u0131s\u0131tlarken g\u00fcvenli dosya transferi y\u00f6ntemlerini zorunlu k\u0131lar.<\/p>\n<p>Bu makale, Ubuntu 16.04 \u00fczerinde bu g\u00fcvenlik odakl\u0131 SFTP kurulumunu nas\u0131l ger\u00e7ekle\u015ftirece\u011finizi ayr\u0131nt\u0131l\u0131 olarak a\u00e7\u0131klayacakt\u0131r.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Bu rehbere ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n kar\u015f\u0131land\u0131\u011f\u0131ndan emin olun:<\/p>\n<p>*   <strong>Ubuntu 16.04 Sunucusu:<\/strong> \u00c7al\u0131\u015f\u0131r durumda bir Ubuntu 16.04 sunucusuna sahip olmal\u0131s\u0131n\u0131z.<br \/>\n*   <strong>OpenSSH Sunucusu:<\/strong> Sunucunuzda OpenSSH kurulu ve \u00e7al\u0131\u015f\u0131yor olmal\u0131d\u0131r. Genellikle Ubuntu kurulumlar\u0131nda varsay\u0131lan olarak gelir. Kurulu de\u011filse <code>sudo apt-get install openssh-server<\/code> komutu ile kurabilirsiniz.<br \/>\n*   <strong>Sudo Yetkileri:<\/strong> \u0130\u015flemleri ger\u00e7ekle\u015ftirmek i\u00e7in <code>sudo<\/code> ayr\u0131cal\u0131klar\u0131na sahip bir kullan\u0131c\u0131 hesab\u0131n\u0131z olmal\u0131d\u0131r.<br \/>\n*   <strong>Temel Linux Bilgisi:<\/strong> Temel Linux komutlar\u0131, dosya izinleri ve sahiplikleri hakk\u0131nda bilgi sahibi olmak faydal\u0131 olacakt\u0131r.<br \/>\n*   <strong>SSH \u0130stemcisi:<\/strong> SFTP ba\u011flant\u0131s\u0131n\u0131 test etmek i\u00e7in yerel makinenizde bir SSH\/SFTP istemcisi (\u00f6rne\u011fin, FileZilla, WinSCP veya komut sat\u0131r\u0131 SFTP istemcisi) bulunmal\u0131d\u0131r.<\/p>\n<h3>SFTP \u0130\u00e7in \u00d6zel Bir Kullan\u0131c\u0131 Grubu Olu\u015fturma<\/h3>\n<p>\u0130lk ad\u0131m olarak, SFTP eri\u015fimi k\u0131s\u0131tlanacak kullan\u0131c\u0131lar\u0131 y\u00f6netmek i\u00e7in \u00f6zel bir Linux grubu olu\u015fturaca\u011f\u0131z. Bu, SSH yap\u0131land\u0131rmas\u0131nda bu gruba ait t\u00fcm kullan\u0131c\u0131lara belirli kurallar\u0131 uygulamam\u0131z\u0131 kolayla\u015ft\u0131racakt\u0131r.<\/p>\n<h4>Grup Olu\u015fturma<\/h4>\n<p><code>sftpusers<\/code> ad\u0131nda yeni bir grup olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo groupadd sftpusers<\/code><\/pre>\n<p>Bu komut, sistemde <code>sftpusers<\/code> ad\u0131nda yeni bir grup tan\u0131mlar.<\/p>\n<h3>SFTP Kullan\u0131c\u0131s\u0131 Olu\u015fturma ve Yap\u0131land\u0131rma<\/h3>\n<p>\u015eimdi, kabuk eri\u015fimi olmayan ve yaln\u0131zca SFTP i\u00e7in kullan\u0131lacak bir kullan\u0131c\u0131 hesab\u0131 olu\u015fturaca\u011f\u0131z. Bu kullan\u0131c\u0131y\u0131 az \u00f6nce olu\u015fturdu\u011fumuz <code>sftpusers<\/code> grubuna atayaca\u011f\u0131z ve oturum a\u00e7ma kabu\u011funu <code>\/sbin\/nologin<\/code> olarak ayarlayarak SSH \u00fczerinden etkile\u015fimli kabuk eri\u015fimini engelleyece\u011fiz.<\/p>\n<h4>Kullan\u0131c\u0131 Olu\u015fturma ve Ev Dizini Haz\u0131rl\u0131\u011f\u0131<\/h4>\n<p>SFTP chroot ortam\u0131 i\u00e7in en g\u00fcvenli ve y\u00f6netilebilir y\u00f6ntemlerden biri, kullan\u0131c\u0131lar\u0131n chroot dizinlerini <code>\/var\/sftp<\/code> gibi merkezi bir konumda tutmakt\u0131r. Bu yakla\u015f\u0131m, chroot dizininin ve \u00fcst dizinlerinin <code>root<\/code> kullan\u0131c\u0131s\u0131na ait olma zorunlulu\u011funu daha kolay y\u00f6netmemizi sa\u011flar.<\/p>\n<p>\u00d6ncelikle, t\u00fcm SFTP kullan\u0131c\u0131lar\u0131n\u0131n chroot edilece\u011fi ana dizini olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/sftp\nsudo chown root:root \/var\/sftp\nsudo chmod 755 \/var\/sftp<\/code><\/pre>\n<p>*   <code>sudo mkdir -p \/var\/sftp<\/code>: <code>\/var\/sftp<\/code> dizinini olu\u015fturur. <code>-p<\/code> parametresi, \u00fcst dizinler yoksa onlar\u0131 da olu\u015fturur.<br \/>\n*   <code>sudo chown root:root \/var\/sftp<\/code>: <code>\/var\/sftp<\/code> dizininin sahipli\u011fini <code>root<\/code> kullan\u0131c\u0131s\u0131na ve <code>root<\/code> grubuna atar.<br \/>\n*   <code>sudo chmod 755 \/var\/sftp<\/code>: <code>\/var\/sftp<\/code> dizinine <code>root<\/code> i\u00e7in tam izinler (okuma, yazma, \u00e7al\u0131\u015ft\u0131rma), di\u011ferleri i\u00e7in okuma ve \u00e7al\u0131\u015ft\u0131rma izinleri verir. Bu izinler, chroot dizinlerinin g\u00fcvenli\u011fi i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<p>\u015eimdi, <code>sftpuser1<\/code> ad\u0131nda yeni bir kullan\u0131c\u0131 olu\u015ftural\u0131m. Bu kullan\u0131c\u0131 i\u00e7in bir ev dizini olu\u015fturmayaca\u011f\u0131z, \u00e7\u00fcnk\u00fc chroot dizini farkl\u0131 bir yap\u0131ya sahip olacak.<\/p>\n<pre><code class=\"language-bash\">sudo useradd -g sftpusers -s \/sbin\/nologin sftpuser1<\/code><\/pre>\n<p>*   <code>sudo useradd<\/code>: Yeni bir kullan\u0131c\u0131 olu\u015fturma komutu.<br \/>\n*   <code>-g sftpusers<\/code>: Kullan\u0131c\u0131y\u0131 <code>sftpusers<\/code> grubuna atar.<br \/>\n*   <code>-s \/sbin\/nologin<\/code>: Kullan\u0131c\u0131n\u0131n oturum a\u00e7ma kabu\u011funu <code>\/sbin\/nologin<\/code> olarak ayarlar. Bu, kullan\u0131c\u0131n\u0131n SSH \u00fczerinden etkile\u015fimli bir kabuk oturumu ba\u015flatmas\u0131n\u0131 engeller.<br \/>\n*   <code>sftpuser1<\/code>: Olu\u015fturulacak kullan\u0131c\u0131n\u0131n ad\u0131.<\/p>\n<p>Ard\u0131ndan, yeni olu\u015fturdu\u011fumuz kullan\u0131c\u0131 i\u00e7in bir parola belirleyelim:<\/p>\n<pre><code class=\"language-bash\">sudo passwd sftpuser1<\/code><\/pre>\n<p>Sistem sizden <code>sftpuser1<\/code> i\u00e7in yeni bir parola girmenizi ve onaylaman\u0131z\u0131 isteyecektir. G\u00fc\u00e7l\u00fc bir parola se\u00e7ti\u011finizden emin olun.<\/p>\n<h4>Kullan\u0131c\u0131n\u0131n Chroot Dizini ve Yaz\u0131labilir Alan\u0131<\/h4>\n<p>\u015eimdi, <code>sftpuser1<\/code> i\u00e7in chroot dizinini ve kullan\u0131c\u0131n\u0131n dosya y\u00fckleyip indirebilece\u011fi yaz\u0131labilir bir alt dizini olu\u015ftural\u0131m.<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/sftp\/sftpuser1\nsudo chown root:root \/var\/sftp\/sftpuser1\nsudo chmod 755 \/var\/sftp\/sftpuser1<\/code><\/pre>\n<p>*   <code>sudo mkdir -p \/var\/sftp\/sftpuser1<\/code>: Bu, <code>sftpuser1<\/code> kullan\u0131c\u0131s\u0131n\u0131n chroot edilece\u011fi dizin olacakt\u0131r.<br \/>\n*   <code>sudo chown root:root \/var\/sftp\/sftpuser1<\/code>: <strong>\u00c7ok \u00f6nemli!<\/strong> SSH&#8217;nin chroot \u00f6zelli\u011fi i\u00e7in, <code>ChrootDirectory<\/code> olarak belirtilen dizin (ve bu dizine giden t\u00fcm \u00fcst dizinler) <code>root<\/code> kullan\u0131c\u0131s\u0131na ait olmal\u0131 ve ba\u015fkalar\u0131 taraf\u0131ndan yaz\u0131labilir olmamal\u0131d\u0131r. Bu bir g\u00fcvenlik gereklili\u011fidir.<br \/>\n*   <code>sudo chmod 755 \/var\/sftp\/sftpuser1<\/code>: Dizine <code>root<\/code> i\u00e7in tam izinler, di\u011ferleri i\u00e7in okuma ve \u00e7al\u0131\u015ft\u0131rma izinleri verir.<\/p>\n<p>\u015eimdi, <code>sftpuser1<\/code>&#8216;in dosya y\u00fckleyip indirebilece\u011fi bir alt dizin olu\u015ftural\u0131m. Bu dizin, <code>sftpuser1<\/code> kullan\u0131c\u0131s\u0131na ait olacak ve yaz\u0131labilir olacakt\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo mkdir \/var\/sftp\/sftpuser1\/data\nsudo chown sftpuser1:sftpusers \/var\/sftp\/sftpuser1\/data\nsudo chmod 775 \/var\/sftp\/sftpuser1\/data<\/code><\/pre>\n<p>*   <code>sudo mkdir \/var\/sftp\/sftpuser1\/data<\/code>: <code>sftpuser1<\/code> kullan\u0131c\u0131s\u0131n\u0131n dosyalar\u0131n\u0131 depolayaca\u011f\u0131 <code>data<\/code> ad\u0131nda bir alt dizin olu\u015fturur.<br \/>\n*   <code>sudo chown sftpuser1:sftpusers \/var\/sftp\/sftpuser1\/data<\/code>: <code>data<\/code> dizininin sahipli\u011fini <code>sftpuser1<\/code> kullan\u0131c\u0131s\u0131na ve <code>sftpusers<\/code> grubuna atar. Bu, <code>sftpuser1<\/code>&#8216;in bu dizine yazma iznine sahip olmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <code>sudo chmod 775 \/var\/sftp\/sftpuser1\/data<\/code>: <code>data<\/code> dizinine <code>sftpuser1<\/code> i\u00e7in tam izinler (okuma, yazma, \u00e7al\u0131\u015ft\u0131rma), <code>sftpusers<\/code> grubu i\u00e7in okuma, yazma ve \u00e7al\u0131\u015ft\u0131rma izinleri, di\u011ferleri i\u00e7in ise sadece okuma ve \u00e7al\u0131\u015ft\u0131rma izinleri verir. Bu izinleri kendi g\u00fcvenlik gereksinimlerinize g\u00f6re ayarlayabilirsiniz (\u00f6rne\u011fin, sadece kullan\u0131c\u0131n\u0131n yazma izni olmas\u0131 i\u00e7in <code>755<\/code> veya <code>700<\/code>).<\/p>\n<p>Bu yap\u0131land\u0131rma ile, <code>sftpuser1<\/code> SFTP ile ba\u011fland\u0131\u011f\u0131nda, <code>\/var\/sftp\/sftpuser1<\/code> dizini onun k\u00f6k dizini gibi g\u00f6r\u00fcnecek ve yaln\u0131zca <code>data<\/code> dizinine eri\u015febilecektir.<\/p>\n<h3>OpenSSH Sunucusunu SFTP Chroot \u0130\u00e7in Yap\u0131land\u0131rma<\/h3>\n<p>Bu, kurulumun en kritik ad\u0131m\u0131d\u0131r. OpenSSH sunucusunun yap\u0131land\u0131rma dosyas\u0131n\u0131 (<code>sshd_config<\/code>) d\u00fczenleyerek, <code>sftpusers<\/code> grubuna ait kullan\u0131c\u0131lar\u0131n chroot edilmesini ve yaln\u0131zca SFTP eri\u015fimine izin verilmesini sa\u011flayaca\u011f\u0131z.<\/p>\n<h4><code>sshd_config<\/code> Dosyas\u0131n\u0131 D\u00fczenleme<\/h4>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 a\u00e7mak i\u00e7in bir metin d\u00fczenleyici kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/ssh\/sshd_config<\/code><\/pre>\n<p>Dosyada a\u015fa\u011f\u0131daki de\u011fi\u015fiklikleri yapman\u0131z gerekmektedir:<\/p>\n<p>1.  <strong>SFTP Alt Sistemini De\u011fi\u015ftirme:<\/strong><br \/>\n    <code>Subsystem sftp<\/code> ile ba\u015flayan sat\u0131r\u0131 bulun. Varsay\u0131lan olarak \u015f\u00f6yle g\u00f6r\u00fcnebilir:<\/p>\n<pre><code class=\"language-\">Subsystem       sftp    \/usr\/lib\/openssh\/sftp-server<\/code><\/pre>\n<p>    Bu sat\u0131r\u0131 a\u015fa\u011f\u0131daki \u015fekilde de\u011fi\u015ftirin veya e\u011fer yoksa ekleyin:<\/p>\n<pre><code class=\"language-\">Subsystem       sftp    internal-sftp<\/code><\/pre>\n<p>    Bu de\u011fi\u015fiklik, SSH sunucusuna harici bir <code>sftp-server<\/code> ikilisi yerine kendi dahili SFTP sunucusunu kullanmas\u0131n\u0131 s\u00f6yler. Bu, chroot ortam\u0131n\u0131n daha g\u00fcvenli bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>2.  <strong><code>Match<\/code> Blo\u011funu Ekleme:<\/strong><br \/>\n    Dosyan\u0131n en alt\u0131na veya uygun bir yere a\u015fa\u011f\u0131daki <code>Match<\/code> blo\u011funu ekleyin. Bu blok, <code>sftpusers<\/code> grubuna ait kullan\u0131c\u0131lara \u00f6zel kurallar uygular.<\/p>\n<pre><code class=\"language-\">Match Group sftpusers\n        ChrootDirectory \/var\/sftp\/%u\n        ForceCommand internal-sftp\n        AllowTcpForwarding no\n        X11Forwarding no\n        PermitTunnel no\n        AgentForwarding no<\/code><\/pre>\n<p>    Bu sat\u0131rlar\u0131 ayr\u0131nt\u0131l\u0131 olarak inceleyelim:<br \/>\n    *   <code>Match Group sftpusers<\/code>: Bu blok i\u00e7indeki kurallar\u0131n yaln\u0131zca <code>sftpusers<\/code> grubuna ait kullan\u0131c\u0131lara uygulanaca\u011f\u0131n\u0131 belirtir.<br \/>\n    *   <code>ChrootDirectory \/var\/sftp\/%u<\/code>: Bu, SFTP kullan\u0131c\u0131s\u0131n\u0131n ba\u011flanaca\u011f\u0131 k\u00f6k dizinini belirler. <code>%u<\/code> de\u011fi\u015fkeni, ba\u011flanan kullan\u0131c\u0131n\u0131n kullan\u0131c\u0131 ad\u0131yla otomatik olarak de\u011fi\u015ftirilir. Yani <code>sftpuser1<\/code> ba\u011fland\u0131\u011f\u0131nda, <code>\/var\/sftp\/sftpuser1<\/code> onun i\u00e7in k\u00f6k dizini olacakt\u0131r. <strong>Unutmay\u0131n:<\/strong> Bu dizinin ve t\u00fcm \u00fcst dizinlerinin (<code>\/var\/sftp<\/code>) <code>root<\/code> kullan\u0131c\u0131s\u0131na ait olmas\u0131 ve ba\u015fkalar\u0131 taraf\u0131ndan yaz\u0131labilir olmamas\u0131 kritik bir g\u00fcvenlik gereklili\u011fidir.<br \/>\n    *   <code>ForceCommand internal-sftp<\/code>: Bu komut, kullan\u0131c\u0131n\u0131n SSH \u00fczerinden herhangi bir komut \u00e7al\u0131\u015ft\u0131rmas\u0131n\u0131 engeller ve yaln\u0131zca dahili SFTP sunucusunu ba\u015flatmaya zorlar. Bu, kabuk eri\u015fimini tamamen devre d\u0131\u015f\u0131 b\u0131rak\u0131r.<br \/>\n    *   <code>AllowTcpForwarding no<\/code>, <code>X11Forwarding no<\/code>, <code>PermitTunnel no<\/code>, <code>AgentForwarding no<\/code>: Bu sat\u0131rlar, SSH&#8217;nin sundu\u011fu di\u011fer potansiyel t\u00fcnelleme veya iletme \u00f6zelliklerini devre d\u0131\u015f\u0131 b\u0131rakarak ek g\u00fcvenlik sa\u011flar. SFTP i\u00e7in bu \u00f6zelliklere genellikle ihtiya\u00e7 duyulmaz.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydetmek i\u00e7in <code>Ctrl+O<\/code>, ard\u0131ndan <code>Enter<\/code> ve <code>Ctrl+X<\/code> tu\u015flar\u0131na bas\u0131n.<\/p>\n<h4>SSH Hizmetini Yeniden Ba\u015flatma<\/h4>\n<p>Yap\u0131land\u0131rma de\u011fi\u015fikliklerinin etkili olmas\u0131 i\u00e7in SSH hizmetini yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart ssh<\/code><\/pre>\n<p>veya Ubuntu 16.04&#8217;te bazen hala kullan\u0131lan y\u00f6ntem:<\/p>\n<pre><code class=\"language-bash\">sudo service ssh restart<\/code><\/pre>\n<p>SSH hizmetinin ba\u015far\u0131l\u0131 bir \u015fekilde yeniden ba\u015flat\u0131ld\u0131\u011f\u0131ndan emin olmak i\u00e7in durumunu kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status ssh<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>active (running)<\/code> ibaresini g\u00f6rmelisiniz. Herhangi bir hata durumunda, <code>journalctl -u ssh.service<\/code> komutuyla veya <code>\/var\/log\/auth.log<\/code> dosyas\u0131n\u0131 kontrol ederek sorun giderebilirsiniz.<\/p>\n<h3>SFTP Ba\u011flant\u0131s\u0131n\u0131 Test Etme<\/h3>\n<p>\u015eimdi yap\u0131land\u0131rmam\u0131z\u0131n do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in SFTP ba\u011flant\u0131s\u0131n\u0131 test edelim.<\/p>\n<h4>Kabuk Eri\u015fimi Testi<\/h4>\n<p>\u00d6ncelikle, <code>sftpuser1<\/code> kullan\u0131c\u0131s\u0131n\u0131n kabuk eri\u015fimi olmad\u0131\u011f\u0131ndan emin olal\u0131m:<\/p>\n<pre><code class=\"language-bash\">ssh sftpuser1@your_server_ip<\/code><\/pre>\n<p><code>your_server_ip<\/code> yerine sunucunuzun IP adresini veya alan ad\u0131n\u0131 yaz\u0131n. Parolay\u0131 girdikten sonra, a\u015fa\u011f\u0131daki gibi bir mesaj alman\u0131z gerekir:<\/p>\n<pre><code class=\"language-\">This account is currently not available.\nConnection to your_server_ip closed.<\/code><\/pre>\n<p>Bu mesaj, kullan\u0131c\u0131n\u0131n kabuk eri\u015fiminin ba\u015far\u0131yla engellendi\u011fini g\u00f6sterir.<\/p>\n<h4>SFTP Ba\u011flant\u0131 Testi<\/h4>\n<p>\u015eimdi SFTP istemcinizden (\u00f6rne\u011fin FileZilla, WinSCP veya komut sat\u0131r\u0131 <code>sftp<\/code> arac\u0131) ba\u011flant\u0131 kurmay\u0131 deneyin.<\/p>\n<p>Komut sat\u0131r\u0131 SFTP istemcisi kullan\u0131yorsan\u0131z:<\/p>\n<pre><code class=\"language-bash\">sftp sftpuser1@your_server_ip<\/code><\/pre>\n<p>Parolay\u0131 girdikten sonra, SFTP oturumuna ba\u015far\u0131l\u0131 bir \u015fekilde ba\u011flanman\u0131z gerekir. Ba\u011fland\u0131ktan sonra, mevcut dizinin <code>\/<\/code> olarak g\u00f6r\u00fcnmesi ve i\u00e7inde <code>data<\/code> dizinini g\u00f6rmeniz gerekir:<\/p>\n<pre><code class=\"language-\">sftp> pwd\nRemote working directory: \/\nsftp> ls\ndata<\/code><\/pre>\n<p>\u015eimdi <code>data<\/code> dizinine girin ve bir dosya y\u00fcklemeyi veya indirmeyi deneyin:<\/p>\n<pre><code class=\"language-bash\">sftp> cd data\nsftp> put local_file.txt\nUploading local_file.txt to \/data\/local_file.txt\nlocal_file.txt                                100% 0     0.0KB\/s   00:00\nsftp> get remote_file.txt<\/code><\/pre>\n<p>Ba\u015far\u0131l\u0131 bir \u015fekilde dosya y\u00fckleyip indirebiliyorsan\u0131z ve <code>data<\/code> dizini d\u0131\u015f\u0131na \u00e7\u0131kam\u0131yorsan\u0131z, SFTP kurulumunuz ba\u015far\u0131yla tamamlanm\u0131\u015f demektir.<\/p>\n<h3>Geli\u015fmi\u015f Konular ve En \u0130yi Uygulamalar<\/h3>\n<p>SFTP kurulumunuzu daha da g\u00fc\u00e7lendirmek ve y\u00f6netilebilirli\u011fini art\u0131rmak i\u00e7in baz\u0131 geli\u015fmi\u015f konular\u0131 ve en iyi uygulamalar\u0131 g\u00f6z \u00f6n\u00fcnde bulundurabilirsiniz.<\/p>\n<h4>1. Birden Fazla SFTP Kullan\u0131c\u0131s\u0131 Ekleme<\/h4>\n<p>Yeni bir SFTP kullan\u0131c\u0131s\u0131 eklemek i\u00e7in yukar\u0131daki ad\u0131mlar\u0131 tekrarlaman\u0131z yeterlidir:<\/p>\n<p>1.  <strong>Kullan\u0131c\u0131 Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo useradd -g sftpusers -s \/sbin\/nologin sftpuser2\n    sudo passwd sftpuser2<\/code><\/pre>\n<p>2.  <strong>Chroot Dizini ve Yaz\u0131labilir Alan Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/sftp\/sftpuser2\n    sudo chown root:root \/var\/sftp\/sftpuser2\n    sudo chmod 755 \/var\/sftp\/sftpuser2\n    sudo mkdir \/var\/sftp\/sftpuser2\/data\n    sudo chown sftpuser2:sftpusers \/var\/sftp\/sftpuser2\/data\n    sudo chmod 775 \/var\/sftp\/sftpuser2\/data<\/code><\/pre>\n<p>SSH yap\u0131land\u0131rmas\u0131n\u0131 zaten <code>Match Group sftpusers<\/code> blo\u011fu ile ayarlad\u0131\u011f\u0131m\u0131z i\u00e7in, yeni bir kullan\u0131c\u0131 ekledikten sonra SSH hizmetini yeniden ba\u015flatman\u0131za gerek yoktur, ancak emin olmak i\u00e7in yeniden ba\u015flatmakta fayda var.<\/p>\n<h4>2. SSH Anahtar Kimlik Do\u011frulamas\u0131<\/h4>\n<p>Parola tabanl\u0131 kimlik do\u011frulama yerine SSH anahtar \u00e7iftleri kullanmak, g\u00fcvenli\u011fi \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/p>\n<p>1.  <strong>\u0130stemci Taraf\u0131nda Anahtar \u00c7ifti Olu\u015fturma:<\/strong><br \/>\n    Yerel makinenizde (SFTP istemcisi) <code>ssh-keygen<\/code> komutunu kullanarak bir SSH anahtar \u00e7ifti olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">ssh-keygen -t rsa -b 4096<\/code><\/pre>\n<p>    Parola istemedi\u011finizden emin olmak i\u00e7in bir parola belirtmeyin (veya g\u00fcvenli bir parola se\u00e7in). Bu, <code>~\/.ssh\/id_rsa<\/code> (\u00f6zel anahtar) ve <code>~\/.ssh\/id_rsa.pub<\/code> (genel anahtar) dosyalar\u0131n\u0131 olu\u015fturacakt\u0131r.<\/p>\n<p>2.  <strong>Genel Anahtar\u0131 Sunucuya Kopyalama:<\/strong><br \/>\n    Genel anahtar\u0131 (<code>id_rsa.pub<\/code>) sunucudaki SFTP kullan\u0131c\u0131s\u0131n\u0131n chroot dizininin i\u00e7inde, ancak \u00f6zel bir konumda saklaman\u0131z gerekir. Chroot ortam\u0131nda bu biraz karma\u015f\u0131k olabilir. En yayg\u0131n ve g\u00fcvenli y\u00f6ntem, genel anahtar\u0131 kullan\u0131c\u0131n\u0131n <code>ChrootDirectory<\/code> i\u00e7inde bir <code>.ssh<\/code> dizinine yerle\u015ftirmektir.<\/p>\n<p>    \u00d6ncelikle, kullan\u0131c\u0131n\u0131n chroot dizini i\u00e7inde <code>.ssh<\/code> dizinini ve <code>authorized_keys<\/code> dosyas\u0131n\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo mkdir \/var\/sftp\/sftpuser1\/.ssh\n    sudo chown root:root \/var\/sftp\/sftpuser1\/.ssh\n    sudo chmod 700 \/var\/sftp\/sftpuser1\/.ssh\n    sudo touch \/var\/sftp\/sftpuser1\/.ssh\/authorized_keys\n    sudo chown root:root \/var\/sftp\/sftpuser1\/.ssh\/authorized_keys\n    sudo chmod 600 \/var\/sftp\/sftpuser1\/.ssh\/authorized_keys<\/code><\/pre>\n<p>    <strong>Dikkat:<\/strong> <code>.ssh<\/code> dizini ve <code>authorized_keys<\/code> dosyas\u0131 <code>root<\/code> kullan\u0131c\u0131s\u0131na ait olmal\u0131 ve ba\u015fkalar\u0131 taraf\u0131ndan yaz\u0131labilir olmamal\u0131d\u0131r. Bu, chroot ortam\u0131nda anahtar kimlik do\u011frulamas\u0131n\u0131n g\u00fcvenli bir \u015fekilde \u00e7al\u0131\u015fmas\u0131 i\u00e7in zorunludur. Kullan\u0131c\u0131 bu dosyalar\u0131 kendisi y\u00f6netemez.<\/p>\n<p>    \u015eimdi, yerel makinenizdeki <code>id_rsa.pub<\/code> dosyas\u0131n\u0131n i\u00e7eri\u011fini kopyalay\u0131n ve sunucudaki <code>\/var\/sftp\/sftpuser1\/.ssh\/authorized_keys<\/code> dosyas\u0131na yap\u0131\u015ft\u0131r\u0131n. Bunu <code>scp<\/code> ile yapabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">scp ~\/.ssh\/id_rsa.pub sftpuser1@your_server_ip:\/tmp\/id_rsa.pub<\/code><\/pre>\n<p>    Ard\u0131ndan sunucuya SSH ile ba\u011flan\u0131n (e\u011fer ba\u015fka bir kullan\u0131c\u0131yla kabuk eri\u015fiminiz varsa) ve anahtar\u0131 kopyalay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo cat \/tmp\/id_rsa.pub >> \/var\/sftp\/sftpuser1\/.ssh\/authorized_keys\n    sudo rm \/tmp\/id_rsa.pub<\/code><\/pre>\n<p>    E\u011fer sunucuya kabuk eri\u015fiminiz yoksa, genel anahtar\u0131n\u0131z\u0131 elle kopyalay\u0131p <code>authorized_keys<\/code> dosyas\u0131na yap\u0131\u015ft\u0131rman\u0131z gerekecektir.<\/p>\n<p>3.  <strong>SSH Hizmetini Yeniden Ba\u015flatma:<\/strong><br \/>\n    Anahtar de\u011fi\u015fikliklerinin etkili olmas\u0131 i\u00e7in SSH hizmetini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart ssh<\/code><\/pre>\n<p>4.  <strong>Anahtar ile Test Etme:<\/strong><br \/>\n    \u015eimdi SFTP istemcinizde \u00f6zel anahtar dosyas\u0131n\u0131 (<code>id_rsa<\/code>) kullanarak ba\u011flant\u0131 kurmay\u0131 deneyin. Parola istemeden ba\u011flanman\u0131z gerekir.<\/p>\n<h4>3. SSH Parola Kimlik Do\u011frulamay\u0131 Devre D\u0131\u015f\u0131 B\u0131rakma (Yaln\u0131zca Anahtar Kullan\u0131m\u0131)<\/h4>\n<p>E\u011fer t\u00fcm SFTP kullan\u0131c\u0131lar\u0131n\u0131z SSH anahtar kimlik do\u011frulamas\u0131 kullanacaksa, sunucunuzun g\u00fcvenli\u011fini art\u0131rmak i\u00e7in parola kimlik do\u011frulamas\u0131n\u0131 tamamen devre d\u0131\u015f\u0131 b\u0131rakabilirsiniz.<\/p>\n<p><code>sshd_config<\/code> dosyas\u0131n\u0131 tekrar 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 bulun ve de\u011ferlerini <code>no<\/code> olarak ayarlay\u0131n:<\/p>\n<pre><code class=\"language-\">PasswordAuthentication no\nChallengeResponseAuthentication no<\/code><\/pre>\n<p>Ard\u0131ndan SSH hizmetini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart ssh<\/code><\/pre>\n<p><strong>Uyar\u0131:<\/strong> Bu de\u011fi\u015fikli\u011fi yapmadan \u00f6nce, en az bir kullan\u0131c\u0131n\u0131n SSH anahtar kimlik do\u011frulamas\u0131 ile sorunsuz bir \u015fekilde ba\u011flanabildi\u011finden emin olun. Aksi takdirde sunucuya eri\u015fiminizi kaybedebilirsiniz.<\/p>\n<h4>4. G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (UFW)<\/h4>\n<p>Sunucunuzda g\u00fcvenlik duvar\u0131n\u0131 (UFW) etkinle\u015ftirdiyseniz, SSH (ve dolay\u0131s\u0131yla SFTP) ba\u011flant\u0131lar\u0131 i\u00e7in 22 numaral\u0131 ba\u011flant\u0131 noktas\u0131n\u0131n a\u00e7\u0131k oldu\u011fundan emin olun.<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow OpenSSH\nsudo ufw enable<\/code><\/pre>\n<p>E\u011fer SSH i\u00e7in farkl\u0131 bir port kullan\u0131yorsan\u0131z, o portu a\u00e7man\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow your_ssh_port\/tcp<\/code><\/pre>\n<h4>5. SSH Portunu De\u011fi\u015ftirme<\/h4>\n<p>Varsay\u0131lan SSH portu (22) s\u0131k\u00e7a sald\u0131r\u0131ya u\u011frad\u0131\u011f\u0131 i\u00e7in, bunu farkl\u0131, standart olmayan bir porta de\u011fi\u015ftirmek ek bir g\u00fcvenlik katman\u0131 sa\u011flar.<\/p>\n<p><code>sshd_config<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/ssh\/sshd_config<\/code><\/pre>\n<p><code>Port 22<\/code> sat\u0131r\u0131n\u0131 bulun ve istedi\u011finiz ba\u015fka bir porta (\u00f6rne\u011fin, 2222) de\u011fi\u015ftirin:<\/p>\n<pre><code class=\"language-\">Port 2222<\/code><\/pre>\n<p>Ard\u0131ndan SSH hizmetini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart ssh<\/code><\/pre>\n<p>Yeni portu g\u00fcvenlik duvar\u0131n\u0131zda a\u00e7t\u0131\u011f\u0131n\u0131zdan ve eski portu kapatt\u0131\u011f\u0131n\u0131zdan emin olun.<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 2222\/tcp\nsudo ufw delete allow OpenSSH # veya ufw delete allow 22\/tcp<\/code><\/pre>\n<p><strong>Uyar\u0131:<\/strong> SSH portunu de\u011fi\u015ftirdikten sonra, yeni portu kullanarak ba\u011flanabildi\u011finizden emin olmadan mevcut SSH oturumunuzu kapatmay\u0131n.<\/p>\n<h4>6. G\u00fcnl\u00fck Kay\u0131tlar\u0131n\u0131 Kontrol Etme<\/h4>\n<p>SFTP kullan\u0131c\u0131lar\u0131n\u0131n etkinliklerini izlemek ve sorunlar\u0131 gidermek i\u00e7in SSH g\u00fcnl\u00fck kay\u0131tlar\u0131n\u0131 d\u00fczenli olarak kontrol etmek \u00f6nemlidir.<\/p>\n<pre><code class=\"language-bash\">sudo tail -f \/var\/log\/auth.log<\/code><\/pre>\n<p>Bu komut, <code>\/var\/log\/auth.log<\/code> dosyas\u0131ndaki son kay\u0131tlar\u0131 g\u00f6sterir ve yeni kay\u0131tlar eklendik\u00e7e g\u00fcncellenir. SFTP ba\u011flant\u0131 giri\u015fimleri, chroot hatalar\u0131 ve di\u011fer g\u00fcvenlik olaylar\u0131 bu dosyada kaydedilir.<\/p>\n<h3>Sorun Giderme<\/h3>\n<p>SFTP kurulumunda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>*   <strong>&#8220;This account is currently not available.&#8221; hatas\u0131 al\u0131yorum, ancak SFTP&#8217;ye de ba\u011flanam\u0131yorum.<\/strong><br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>sshd_config<\/code> dosyas\u0131ndaki <code>Subsystem sftp internal-sftp<\/code> sat\u0131r\u0131n\u0131 ve <code>Match Group sftpusers<\/code> blo\u011funu do\u011fru yazd\u0131\u011f\u0131n\u0131zdan emin olun. \u00d6zellikle <code>ForceCommand internal-sftp<\/code> sat\u0131r\u0131 kritik \u00f6neme sahiptir. SSH hizmetini yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zdan emin olun.<br \/>\n    *   Kullan\u0131c\u0131n\u0131n kabu\u011funun <code>\/sbin\/nologin<\/code> olarak ayarland\u0131\u011f\u0131ndan emin olun (<code>cat \/etc\/passwd | grep sftpuser1<\/code>).<\/p>\n<p>*   <strong>SFTP ile ba\u011flanmaya \u00e7al\u0131\u015f\u0131rken &#8220;Permission denied&#8221; hatas\u0131 al\u0131yorum.<\/strong><br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Bu genellikle chroot dizini izinlerinden kaynaklan\u0131r.<br \/>\n        *   <code>\/var\/sftp<\/code> dizininin <code>root:root<\/code> taraf\u0131ndan sahiplendi\u011finden ve izinlerinin <code>755<\/code> oldu\u011fundan emin olun.<br \/>\n        *   <code>\/var\/sftp\/sftpuser1<\/code> (chroot dizininin kendisi) dizininin <code>root:root<\/code> taraf\u0131ndan sahiplendi\u011finden ve izinlerinin <code>755<\/code> oldu\u011fundan emin olun.<br \/>\n        *   <code>\/var\/sftp\/sftpuser1\/data<\/code> (kullan\u0131c\u0131n\u0131n yaz\u0131labilir dizini) dizininin <code>sftpuser1:sftpusers<\/code> taraf\u0131ndan sahiplendi\u011finden ve izinlerinin <code>775<\/code> (veya uygun di\u011fer yazma izinleri) oldu\u011fundan emin olun.<br \/>\n        *   <code>sshd_config<\/code> dosyas\u0131ndaki <code>ChrootDirectory<\/code> yolunun do\u011fru oldu\u011fundan emin olun.<br \/>\n        *   SSH hizmetini yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zdan emin olun.<br \/>\n    *   SSH anahtar kimlik do\u011frulamas\u0131 kullan\u0131yorsan\u0131z, <code>\/var\/sftp\/sftpuser1\/.ssh<\/code> dizininin <code>root:root<\/code> taraf\u0131ndan sahiplendi\u011finden ve <code>700<\/code> iznine sahip oldu\u011fundan, ayr\u0131ca <code>\/var\/sftp\/sftpuser1\/.ssh\/authorized_keys<\/code> dosyas\u0131n\u0131n <code>root:root<\/code> taraf\u0131ndan sahiplendi\u011finden ve <code>600<\/code> iznine sahip oldu\u011fundan emin olun.<\/p>\n<p>*   <strong>SSH hizmeti yeniden ba\u015flam\u0131yor veya hata veriyor.<\/strong><br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>sudo systemctl status ssh<\/code> veya <code>journalctl -u ssh.service<\/code> komutlar\u0131n\u0131 kullanarak hata mesajlar\u0131n\u0131 kontrol edin. Genellikle <code>sshd_config<\/code> dosyas\u0131nda bir yaz\u0131m hatas\u0131 veya yanl\u0131\u015f yap\u0131land\u0131rma vard\u0131r. <code>sudo sshd -t<\/code> komutu, yap\u0131land\u0131rma dosyas\u0131ndaki s\u00f6zdizimi hatalar\u0131n\u0131 kontrol etmenize yard\u0131mc\u0131 olabilir.<\/p>\n<p>*   <strong>SFTP ile ba\u011flanabiliyorum ama <code>data<\/code> dizinini g\u00f6remiyorum veya i\u00e7ine yazam\u0131yorum.<\/strong><br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>\/var\/sftp\/sftpuser1\/data<\/code> dizininin var oldu\u011fundan ve <code>sftpuser1<\/code> kullan\u0131c\u0131s\u0131na ait oldu\u011fundan (<code>chown sftpuser1:sftpusers \/var\/sftp\/sftpuser1\/data<\/code>) ve uygun yazma izinlerine sahip oldu\u011fundan (<code>chmod 775 \/var\/sftp\/sftpuser1\/data<\/code>) emin olun.<\/p>\n<p>*   <strong>SFTP istemcim &#8220;Connection refused&#8221; diyor.<\/strong><br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> SSH hizmetinin \u00e7al\u0131\u015f\u0131r durumda oldu\u011fundan emin olun. G\u00fcvenlik duvar\u0131n\u0131z\u0131n (UFW) SSH portunuza izin verdi\u011finden emin olun. Sunucu IP adresini veya alan ad\u0131n\u0131 do\u011fru yazd\u0131\u011f\u0131n\u0131zdan emin olun.<\/p>\n<p>Bu sorun giderme ad\u0131mlar\u0131, \u00e7o\u011fu SFTP chroot kurulumu sorununu \u00e7\u00f6zmenize yard\u0131mc\u0131 olacakt\u0131r. Her zaman SSH g\u00fcnl\u00fcklerini kontrol etmek, sorunun kayna\u011f\u0131n\u0131 anlaman\u0131n en iyi yoludur.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Ubuntu 16.04 \u00fczerinde OpenSSH&#8217;nin chroot \u00f6zelli\u011fini kullanarak kabuk eri\u015fimi olmayan, yaln\u0131zca SFTP eri\u015fimli kullan\u0131c\u0131lar\u0131 nas\u0131l yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ayr\u0131nt\u0131l\u0131 olarak ele ald\u0131k. Bu y\u00f6ntem, sunucunuzun g\u00fcvenli\u011fini art\u0131r\u0131rken, belirli kullan\u0131c\u0131lar\u0131n dosya transferi ihtiya\u00e7lar\u0131n\u0131 g\u00fcvenli bir \u015fekilde kar\u015f\u0131lamalar\u0131n\u0131 sa\u011flar.<\/p>\n<p>Kurulumun temel ad\u0131mlar\u0131 \u015funlar\u0131 i\u00e7erir:<br \/>\n1.  SFTP kullan\u0131c\u0131lar\u0131 i\u00e7in \u00f6zel bir grup olu\u015fturmak.<br \/>\n2.  <code>\/sbin\/nologin<\/code> kabu\u011fuyla yeni kullan\u0131c\u0131lar olu\u015fturmak.<br \/>\n3.  SFTP chroot ortam\u0131 i\u00e7in dizin yap\u0131s\u0131n\u0131 (<code>\/var\/sftp\/%u<\/code> ve alt\u0131ndaki yaz\u0131labilir <code>data<\/code> dizini) haz\u0131rlamak ve do\u011fru dosya izinlerini ve sahipliklerini ayarlamak. <strong>Bu ad\u0131m\u0131n, \u00f6zellikle chroot dizininin <code>root<\/code>&#8216;a ait olmas\u0131 ve ba\u015fkalar\u0131 taraf\u0131ndan yaz\u0131labilir olmamas\u0131 kural\u0131n\u0131n titizlikle uygulanmas\u0131, g\u00fcvenli bir chroot ortam\u0131 i\u00e7in hayati \u00f6neme sahiptir.<\/strong><br \/>\n4.  OpenSSH yap\u0131land\u0131rma dosyas\u0131n\u0131 (<code>sshd_config<\/code>) <code>Subsystem sftp internal-sftp<\/code> ve <code>Match Group sftpusers<\/code> blo\u011fu ile d\u00fczenlemek.<br \/>\n5.  SSH hizmetini yeniden ba\u015flatmak ve ba\u011flant\u0131y\u0131 test etmek.<\/p>\n<p>Ek g\u00fcvenlik \u00f6nlemleri olarak SSH anahtar kimlik do\u011frulamas\u0131 kullanmak, parola kimlik do\u011frulamas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rakmak, SSH portunu de\u011fi\u015ftirmek ve g\u00fcvenlik duvar\u0131n\u0131 yap\u0131land\u0131rmak gibi en iyi uygulamalar\u0131 da g\u00f6zden ge\u00e7irdik. Bu ad\u0131mlar\u0131 uygulayarak, sunucunuzdaki dosya transferi i\u015flemlerini \u00e7ok daha g\u00fcvenli ve kontroll\u00fc bir hale getirebilirsiniz. Unutmay\u0131n, g\u00fcvenlik s\u00fcrekli bir s\u00fcre\u00e7tir ve sistemlerinizi d\u00fczenli olarak g\u00fcncellemek ve izlemek \u00f6nemlidir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir?\nG\u00fcvenli Dosya Transfer Protokol\u00fc (SFTP), sunucular aras\u0131nda dosya tran","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-31413","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 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir? - 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-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir?\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir? G\u00fcvenli Dosya Transfer Protokol\u00fc (SFTP), sunucular aras\u0131nda dosya tran\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-09T15:41:31+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=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir?\",\"datePublished\":\"2025-10-09T15:41:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/\"},\"wordCount\":3143,\"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-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/\",\"name\":\"Ubuntu 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-09T15:41:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir?\"}]},{\"@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 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir? - 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-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir?","og_description":"Ubuntu 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir? G\u00fcvenli Dosya Transfer Protokol\u00fc (SFTP), sunucular aras\u0131nda dosya tran","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-09T15:41:31+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir?","datePublished":"2025-10-09T15:41:31+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/"},"wordCount":3143,"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-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/","name":"Ubuntu 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-09T15:41:31+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-kabuk-erisimi-olmadan-sftp-nasil-etkinlestirilir\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 16.04 \u00dczerinde Kabuk Eri\u015fimi Olmadan SFTP Nas\u0131l Etkinle\u015ftirilir?"}]},{"@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\/31413","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=31413"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31413\/revisions"}],"predecessor-version":[{"id":31414,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31413\/revisions\/31414"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}