SFTP ile Güvenli Dosya Aktarımı ve Yönetimi

Sunucu güvenliği söz konusu olduğunda dosya aktarım protokolü genellikle ikinci planda kalır. Ancak internet bağlantısına sahip Linux ve Windows sunucularda kullanılan aktarım yöntemi, kullanıcı bilgileri ve veri bütünlüğü açısından doğrudan risk oluşturabilir.

FTP protokolü bu noktada yetersiz kalır çünkü aktarım sırasında herhangi bir şifreleme sağlamaz. Kullanıcı adı, parola ve dosya içeriği ağ trafiği üzerinde açık şekilde taşınır.

Bu görselin Alt özniteliği boş. Dosya adı: Ekran-goruntusu-2026-02-04-150813.png

SFTP Protokolünün Temel Mantığı

SFTP, SSH altyapısı üzerinde çalışan ve dosya aktarım işlemlerini güvenli hâle getiren bir protokoldür. FTP’den farklı olarak bağlantı sırasında kullanılan kullanıcı adı, parola ve aktarılan tüm dosya içeriği şifrelenerek iletilir.

SFTP bağımsız bir servis değildir. Sunucuda SSH servisi aktif olduğu sürece SFTP otomatik olarak kullanılabilir. Varsayılan iletişim portu TCP 22’dir ve ek bir port açılmasına gerek yoktur.

FTP, FTPS ve SFTP Güvenlik Yaklaşımı Karşılaştırması

FTP protokolü, veri ve kimlik bilgilerini herhangi bir şifreleme uygulamadan düz metin olarak iletir. Bu durum, özellikle ortak ağlar veya internet üzerinden gerçekleştirilen dosya transferlerinde ciddi güvenlik açıklarına neden olur.

FTPS, SSL/TLS kullanarak bu sorunu kısmen giderir ancak ek port gereksinimleri, sertifika yönetimi ve firewall yapılandırmaları süreci daha karmaşık hâle getirir. SFTP ise SSH altyapısını kullandığı için yapılandırma açısından daha sade ve güvenlik seviyesi açısından daha güçlüdür.

SFTP Hangi Senaryolarda Avantaj Sağlar?

SFTP, basit bir dosya transfer protokolü olmanın ötesinde, güvenli erişim ve merkezi dosya yönetimi sunan bir altyapı bileşenidir.

  • Web sunucularında kod, tema ve içerik güncellemeleri yapılırken
  • Veritabanı yedekleri veya log dosyalarının uzaktan alınması gereken durumlarda
  • Kurumsal yapılarda kullanıcıya sınırlı dosya ve dizin erişimi tanımlanırken
  • Otomasyon ve script tabanlı dosya transfer süreçlerinde
  • Veri merkezi ve hosting ortamlarında müşteri dizinleri yönetilirken

SFTP Bağlantısı Kurmadan Önce Gerekli Ön Koşullar

SFTP bağlantısı kurulabilmesi için hem istemci hem de sunucu tarafında bazı temel gereksinimlerin eksiksiz şekilde sağlanmış olması gerekir.

Sunucu tarafında

  • SSH servisi aktif olmalıdır
  • SSH portu (varsayılan olarak 22) erişilebilir durumda olmalıdır
  • Kullanıcı hesabı ve ilgili dizinler için dosya izinleri tanımlı olmalıdır

İstemci tarafında

  • Linux, macOS veya Windows (PowerShell / OpenSSH) ortamı bulunmalıdır
  • Terminal erişimi veya SFTP destekleyen bir istemci kullanılmalıdır

SSH Altyapısı Olmadan SFTP Olmaz

SFTP bağımsız bir servis değildir. Arka planda SSH çalışmıyorsa SFTP de çalışmaz. Çoğu dağıtımda SSH varsayılan olarak yüklü gelse de minimal kurulumlarda manuel kurulum gerekebilir. Ubuntu ve Debian tabanlı sistemlerde openssh-server paketi kurulduktan sonra servis aktif hâle getirilir. RHEL tabanlı sistemlerde ise aynı paket dnf üzerinden sağlanır.

SSH servisinin aktif olup olmadığı aşağıdaki komutla kontrol edilebilir.

ss -tlnp | grep ssh

Terminal Üzerinden SFTP Bağlantısı Kurma

Linux, macOS veya Windows üzerinden ek bir yazılım indirmeden bu yöntemi kullanabilirsiniz.

Terminali açalım ve şu komutu girelim sftp kullanici_adi@sunucu_ip_adresi

Bağlantı kurulduğunda sizden şifre istenecektir. Bağlandıktan sonra komut istemi sftp> şekline döner.

sftp -P 2222 admin@203.0.113.10

⚠️Önemli Hatırlatma Eğer sunucunuz güvenlik nedeniyle varsayılan 22 portu yerine özel bir port mesela 4444 kullanıyorsa, komutu şu şekilde revize etmelisiniz.

sftp -oPort=4444 kullanici_adi@sunucu_ip_adresi

Temel SFTP Komutları

İşlemUzak Sunucu (Remote)Yerel Makine (Local)
Mevcut Dizini Gösterpwdlpwd
Dosyaları Listelelslls
Dizin Değiştircdlcd
Klasör Oluşturmkdirlmkdir

SFTP Ortamında Lokal ve Uzak Dizin Mantığı

SFTP oturumu sırasında hem lokal bilgisayar hem de uzak sunucu ile aynı anda çalışılır. Bu iki tarafı ayırt etmek için kullanılan komutlar farklıdır. Uzak sunucudaki dizini görmek için pwd, lokal bilgisayardaki dizini görmek için lpwd kullanılır. Benzer şekilde ls uzak sunucudaki dosyaları, lls ise lokal dosyaları listeler.

Uzak dizin değiştirmek için

cd /<strong>var</strong>/www/html

Lokal dizin değiştirmek için

lcd /home/user/projects

☝️İpucu: ls -la komutunu kullanarak gizli dosyaları ve detaylı izin yetkilerini rwx olarak görebilirsiniz. Bu, özellikle .htaccess veya .env gibi kritik dosyalarla çalışırken fark yaratır.

Profesyonel SFTP Bağlantı Senaryoları

SFTP bağlantısı her zaman IP yaz bağlan kadar basit olmayabilir. Farklı güvenlik ve ağ senaryoları için parametreler bilinmelidir.

Standart Bağlantı

sftp kullanici_adi@sunucu_ip

Özel Port Kullanımı

SSH portu değiştirildiyse büyük P parametresi kullanılır.

sftp -P 2222 kullanici_adi@sunucu_ip

Keep-Alive ile Kararlı Bağlantı

Uzun süreli bağlantılarda kopmaları önlemek için

sftp -o "ServerAliveInterval=60" kullanici_adi@sunucu_ip

Sunucuya Dosya Yükleme

Kendi bilgisayarınızdaki bir dosyayı sunucuya aktarmak için,

put yerel_dosya.txt

Aynı şekilde klasör yüklemek için de -r kullanılır

put -r yerel_klasor_adi

Sunucudan Dosya İndirme

Uzak sunucudaki bir dosyayı kendi bilgisayarınıza indirmek için,

get uzak_dosya.txt

Eğer dosyanın ismini inerken değiştirmek isterseniz

get uzak_dosya.txt yeni_isim.txt

Bir dizini içindeki her şeyle birlikte indirmek için -r (recursive) kullanalım

<code>get -r uzak_klasor_adi</code>

SFTP Üzerinden Temel Dosya Yönetimi

SFTP yalnızca dosya transferi için değil, temel dosya yönetim işlemleri için de kullanılabilir. Sunucudan dosya silmek için rm, klasör oluşturmak için mkdir, boş klasör silmek için ise rmdir komutları kullanılır.

SSH Key ile Daha Güvenli SFTP Kullanımı

Parola tabanlı SSH bağlantıları brute-force saldırılarına daha açıktır. Bu nedenle üretim ortamlarında SSH key kullanımı önerilir. SFTP de SSH altyapısını kullandığı için aynı yöntem geçerlidir.

SSH anahtarı oluşturmak için,

ssh-keygen -t ed25519

Oluşturulan public key’i sunucuya eklemek için,

ssh-copy-id kullanici@sunucu_ip

Bu işlemden sonra SFTP bağlantısı parola sorulmadan kurulabilir.

sftp kullanici@sunucu_ip

Sık Sorulan Sorular

SFTP kullanıcıları neden shell erişimi olmadan çalıştırılır?

Üretim ortamlarında SFTP kullanıcılarına shell erişimi vermek ciddi bir güvenlik riskidir. internal-sftp kullanılarak shell erişimi kapatılır ve kullanıcı yalnızca dosya transferi yapabilir

SFTP bağlantısı neden “Permission denied” hatası verir?

Bu hata çoğunlukla kullanıcının hedef dizin üzerinde yazma yetkisi olmamasından kaynaklanır. SFTP, SSH yetkilerini birebir kullandığı için çözüm SFTP tarafında değil, sunucu tarafında chown ve chmod ile dizin sahipliği ve izinlerinin doğru şekilde tanımlanmasıdır.

SFTP bağlantısı hangi port üzerinden çalışır?

SFTP varsayılan olarak SSH ile aynı portu, yani 22/TCP kullanır. Güvenlik amacıyla SSH portu değiştirildiyse, SFTP bağlantısı da aynı port üzerinden gerçekleştirilir.

SFTP ile FTP arasındaki fark nedir?

SFTP, dosya aktarımını SSH üzerinden şifreli olarak gerçekleştirir. FTP ise kullanıcı bilgileri ve dosyaları düz metin olarak iletir. Bu nedenle SFTP, özellikle internet üzerinden erişilen sunucularda FTP’ye kıyasla çok daha güvenlidir.

Yorum yapın