Skip to main content

🔐 SFTP ile Güvenli Dosya Transferi: Uzak Sunucu Yönetimi

💡 Bu Rehberde Ne Öğreneceksiniz?

Bu rehber, SFTP (Secure File Transfer Protocol) komut satırı aracını kullanarak uzak sunuculara nasıl güvenli bir şekilde bağlanacağınızı öğretir.
SSH üzerinden şifreli bağlantı kurarak dosya indirme (get), yükleme (put), izin değiştirme (chmod) ve hata ayıklama işlemlerini adım adım göreceksiniz.


🧠 SFTP Nedir?

SFTP, SSH protokolü üzerine kurulmuş güvenli bir dosya transfer protokolüdür.
FTP gibi çalışır ama veriler tamamen şifrelenir.
Bu sayede güvenli, modern ve otomasyona uygun bir çözüm sunar.

Avantajları:

  • 🔒 SSH altyapısı sayesinde uçtan uca şifreleme
  • 💻 Komut satırından veya grafik arayüzlerden kullanılabilir
  • 🧩 Dosya izinleri, sahiplik ve dizin yönetimi desteklenir

🌐 1. SFTP Bağlantısı Kurma

🔹 Temel Bağlantı

sftp kullanici@sunucu_adresi

SSH ile bağlantı kurabiliyorsan, SFTP de hazır demektir.

🔹 Özel Port Kullanımı


sftp -oPort=2222 kullanici@sunucu_adresi

Eğer sunucunda SSH farklı porttan çalışıyorsa bu komutla bağlan.

🔹 Yardım Komutları


help
# veya
?

Tüm kullanılabilir SFTP komutlarını listeler.


📂 2. Dizinlerde Gezinme

KomutAçıklama
pwdUzak sunucudaki mevcut dizini gösterir.
lsUzak dizin içeriğini listeler.
cd uzak_dizinUzak dizinde konum değiştirir.
lpwdYerel sistemdeki mevcut dizini gösterir.
llsYerel dizindeki dosyaları listeler.
lcd yerel_dizinYerel sistemde dizin değiştirir.

Örnek:


ls -la

Uzak dizindeki tüm dosyaları ve izinlerini detaylı listeler.


📥 3. Dosya İndirme (get)

Bir dosyayı uzak sunucudan yerel sisteme indirmek için:


get uzakDosya.txt

Farklı isimle indirmek:


get uzakDosya.txt yerelKopya.txt

Tüm klasörü özyinelemeli olarak indirmek:


get -r Yedekler

-P parametresi izin ve zaman damgalarını korur.


📤 4. Dosya Yükleme (put)

Yerel sistemden uzak sunucuya dosya yüklemek için:


put rapor.pdf

Bir klasörü tamamen yüklemek için:


put -r proje_klasoru

Bu yöntem CI/CD boru hatlarında (ör. Jenkins, GitLab CI) otomatik dağıtım için de kullanılabilir.


🧱 5. Dosya İzinleri ve Sahiplik

Dosya izinlerini değiştirme:


chmod 755 betik.sh

Dosya sahibini değiştirme:


chown 1001 dosya.txt

Dosya grubunu değiştirme:


chgrp 2002 dosya.txt

UID ve GID öğrenmek için:


get /etc/passwd
get /etc/group

⚙️ 6. Yerel Komut Çalıştırma

SFTP oturumunu kapatmadan yerel terminal komutları çalıştırmak için ! kullanılır.


!ls -lh

Yerel dizindeki dosyaları listeler.

Sadece ! yazarak yerel kabuğa geçebilirsin, geri dönmek için exit yazman yeterlidir.


🚀 7. Hata Ayıklama ve SFTP Sunucu Yapılandırması

🔸 Permission Denied (Erişim Engellendi)

Neden: Kullanıcının hedef dizine yazma izni yok.

Çözüm:


sudo chown kullanici:kullanici /hedef/dizin
sudo chmod 755 /hedef/dizin

🔸 Connection Refused / Timeout

Neden: SSH servisi çalışmıyor veya port kapalı.

Çözüm:


sudo systemctl status ssh
sudo ufw allow 22

🔸 Host Key Verification Failed

Neden: Sunucu anahtarı değişmiş.

Çözüm:


ssh-keygen -R sunucu_ip

🔸 Command Not Found

Neden: SFTP alt sistemi devre dışı.

Çözüm: /etc/ssh/sshd_config dosyasındaki şu satır açık olmalı:


Subsystem sftp /usr/lib/openssh/sftp-server

🧠 8. Sıkça Sorulan Sorular (SSS)

1. SFTP ile FTP arasındaki fark nedir?

FTP verileri açık şekilde gönderir; SFTP ise SSH üzerinden şifreler. SFTP, güvenlik açısından FTP’nin modern alternatiftir.

2. SFTP ve SCP farkı nedir?

SCP: Sadece dosya kopyalama yapar.

SFTP: Kopyalama + dizin yönetimi + dosya izinleri + listeleme sunar.

3. SFTP hangi portu kullanır?

Varsayılan olarak 22 numaralı portu kullanır. Ancak sftp -oPort=XXXX ile özel port da belirtilebilir.

4. SSH erişimi olmadan SFTP kullanabilir miyim?

Evet, sshd_config içinde ChrootDirectory ve ForceCommand internal-sftp kullanarak yalnızca SFTP erişimi verebilirsin. Bu, paylaşımlı ortamlarda güvenliği artırır.

5. SFTP transferlerini otomatikleştirmek mümkün mü?

Kesinlikle! Bash betikleri veya Python’daki paramiko kütüphanesi ile zamanlanmış veya CI/CD tabanlı otomasyon yapılabilir.


🌟 Sonuç

SFTP, uzak sunucularla güvenli dosya aktarımı yapmanın en modern ve güvenilir yoludur. SSH protokolü üzerinden çalıştığı için hem veri gizliliği sağlar hem de yönetim kolaylığı sunar.

Artık sen de: ✅ Güvenli bağlantı kurabilir, ✅ Dosyaları aktarabilir, ✅ Hataları kolayca çözebilirsin.

💼 Bu adımları hemen Rabisu Bulut Sunucularında uygulayarak dosya transfer becerilerini profesyonel seviyeye çıkar!