SSH ile Dosya Kopyalama: SCP, rsync ve SFTP Tam Rehberi
SSH (Secure Shell), güvenli uzak sunucu yönetiminin temelini oluşturur. İster kod dağıtan bir geliştirici, ister altyapıyı yöneten bir sistem yöneticisi, ister bir VPS Hosting ortamını koruyan ileri düzey bir kullanıcı olun, makineler arasında dosyaları güvenli bir şekilde aktarmak, sürekli olarak gerçekleştireceğiniz bir görevdir.
Bu kapsamlı rehber, SSH aracılığıyla dosya kopyalamanın tüm ana yöntemlerini — SCP, rsync, SFTP ve anahtar tabanlı otomasyon dahil — gerçek dünya söz dizimi, pratik örnekler ve daha hızlı ve daha güvenli çalışmanıza yardımcı olacak uzman ipuçlarıyla kapsar.
SSH Neden Dosya Transferleri İçin Kullanılmalı?

Araçlara dalmadan önce, SSH tabanlı dosya transferinin neden sunucu yöneticileri ve geliştiriciler için endüstri standardı olduğunu anlamak değerlidir.
- Uçtan uca şifreleme: Kimlik bilgileri, komutlar ve dosya içeriği dahil olmak üzere her bir veri baytı, modern kriptografik algoritmalar kullanılarak aktarım sırasında şifrelenir. Bu, SSH transferlerini paket sniffing ve ortadaki adam saldırılarına karşı bağışık hale getirir.
- Ek yazılım gerekmez: SSH, neredeyse her Linux/Unix sisteminde önceden yüklüdür ve Windows 10+ ve macOS’ta yerel olarak mevcuttur.
- Çok yönlülük: Tek bir SSH bağlantısı, etkileşimli shell oturumlarını, dosya transferlerini, port yönlendirmesini ve otomatik komut dosyalarını işleyebilir.
- Otomasyon dostu: SSH, cron işleri, CI/CD boru hatları ve yedekleme komut dosyaları ile sorunsuz bir şekilde entegre olarak, tamamen otomatik, şifresiz dosya transferlerini sağlar.
- Güvenilirlik: SSH bağlantıları, özellikle rsync gibi araçlarla birleştirildiğinde, ağ kesintilerini zarif bir şekilde işler.
Yöntem 1: SCP (Secure Copy Protocol) ile Dosya Kopyalama

SCP, SSH üzerinden tek seferlik dosya aktarımları için en basit ve en yaygın kullanılan araçtır. Mevcut SSH bağlantınızdan yararlanarak dosyaları ana bilgisayarlar arasında güvenli bir şekilde kopyalamak için çalışır.
1) Temel SCP Sözdizimi
scp [options] [source] [destination]2) Yerel Makineden Uzak Sunucuya Dosya Yükleme
scp /path/to/local/file username@remote_host:/path/to/remote/destinationAçıklama:
| /path/to/local/file | yerel makinenizde aktarmak istediğiniz dosya |
| username@remote_host | SSH kullanıcı adınız ve sunucunun ana bilgisayar adı veya IP adresi |
| /path/to/remote/destination | uzak sunucudaki hedef dizin veya dosya yolu |
3) Uzak Sunucudan Yerel Makinaya Dosya İndirme
scp username@remote_host:/path/to/remote/file /path/to/local/destinationDosyayı sunucudan yerel makinenize çekmek için kaynağı ve hedefi tersine çevirin.
4) Tüm Dizini Özyinelemeli Olarak Kopyalama
scp -r /path/to/local/directory username@remote_host:/path/to/remote/destination-r bayrağı, SCP’ye dizini ve tüm içeriğini özyinelemeli olarak kopyalamasını söyler; iç içe geçmiş alt dizinleri de dahil eder.
5) Yararlı SCP Seçenekleri
| Seçenek | Açıklama |
|---|---|
| -P [port] | Özel bir SSH portu belirtin (not: SSH’nin küçük -p harfinin aksine büyük -P) |
| -C | Yavaş bağlantılarda daha hızlı aktarımlar için sıkıştırmayı etkinleştirin |
| -i [identity_file] | Kimlik doğrulama için belirli bir SSH özel anahtarı kullanın |
| -l [limit] | Bant genişliği kullanımını Kbit/s cinsinden sınırlayın |
| -q | Sessiz mod — ilerleme çıkışını bastırın |
| -v | Ayrıntılı mod — bağlantı sorunlarını hata ayıklamak için yararlı |
6) SCP Ne Zaman Kullanılır
SCP, basitliğin önemli olduğu hızlı, tek seferlik dosya aktarımları için idealdir. Yapılandırma gerektirmez ve SSH yüklü olan herhangi bir sistemde hazır olarak çalışır. Ancak, büyük dizinler veya tekrarlanan aktarımlar için rsync önemli ölçüde daha iyi bir seçimdir.
Yöntem 2: rsync ile Dosyaları Kopyalama

rsync, SSH üzerinden dosya senkronizasyonu ve aktarımı için profesyonellerin tercih ettiği araçtır. Onun en güçlü özelliği delta aktarımıdır: tüm dosyaları kopyalamak yerine, rsync kaynağı ve hedefi analiz eder ve yalnızca değişen bölümleri aktarır. Bu, büyük dosyalar veya sık güncellenen dizinlerle uğraşırken muazzam miktarda zaman ve bant genişliğinden tasarruf sağlar.
1) Temel rsync Söz Dizimi
rsync [options] [source] [destination]2) Yerel Makineden Uzak Sunucuya Dosya Yükleme
rsync -avz /path/to/local/file username@remote_host:/path/to/remote/destination3) Tüm Bir Dizini Uzak Sunucuya Senkronize Etme
rsync -avz /path/to/local/directory/ username@remote_host:/path/to/remote/destination/Önemli: Kaynak dizinin sonundaki eğik çizgiyi / not edin. Sondaki eğik çizgi ile rsync dizinin içeriğini kopyalar. Olmadan, rsync dizini hedefin alt dizini olarak kopyalar.
4) Bir Dizini Yansıtma (Kaynaktan Silinen Dosyaları Sil)
rsync -avz --delete /path/to/local/directory/ username@remote_host:/path/to/remote/destination/–delete bayrağı, kaynaktan silinen dosyaların hedeften de kaldırılmasını sağlayarak her iki konumu da mükemmel şekilde senkronize tutar.
5) Özel SSH Portu Kullanma
rsync -avz -e "ssh -p 2222" /path/to/local/directory/ username@remote_host:/path/to/remote/destination/6) Yararlı rsync Seçenekleri
| Seçenek | Açıklama |
|---|---|
| -a | Arşiv modu: izinleri, zaman damgalarını, sembolik bağlantıları ve sahipliği korur |
| -v | Ayrıntılı: aktarım sırasında dosya dosya ilerlemeyi gösterir |
| -z | Sıkıştırma: ağ üzerinden aktarılan verileri azaltır |
| –delete | Kaynakta artık mevcut olmayan hedefdeki dosyaları siler |
| –progress | Her dosya için gerçek zamanlı ilerlemeyi gösterir |
| –exclude | Belirli dosyaları veya desenleri hariç tut (örn. –exclude ‘*.log’) |
| -n veya –dry-run | Aktarımı gerçekten hiçbir şey kopyalamadan simüle et |
| -e “ssh -p [port]” | Özel SSH portu belirt |
| –bwlimit=[KB/s] | Bağlantınızı doyurmamak için aktarım hızını sınırla |
7) rsync Ne Zaman Kullanılır
Yedeklemeler, dağıtımlar ve herhangi bir yinelenen senkronizasyon görevi için rsync kullanın. Bant genişliği verimliliği ve veri bütünlüğünün kritik olduğu bir Dedicated Server‘da büyük kod tabanlarını, medya kütüphanelerini veya veritabanı dışa aktarımlarını yönetirken özellikle güçlüdür.
Yöntem 3: İki Uzak Sunucu Arasında Dosya Kopyalama

Hem SCP hem de rsync’in daha az bilinen ancak son derece yararlı bir yeteneği, verileri iki uzak sunucu arasında doğrudan aktarma — yerel makineniz üzerinden yönlendirmeden. Bu, sunucuları geçirirken veya bulut örnekleri arasında veri senkronize ederken paha biçilmezdir.
1) SCP ile İki Uzak Sunucu Arasında Dosya Kopyalama
scp username1@remote_host1:/path/to/file username2@remote_host2:/path/to/destination2) rsync ile İki Uzak Sunucu Arasında Dosya Kopyalama
rsync -avz username1@remote_host1:/path/to/source/ username2@remote_host2:/path/to/destination/Not: Sunucu-sunucu aktarımlarının çalışması için, kaynak sunucunun hedef sunucuya SSH bağlantısı kurabilmesi gerekir. Kaynak sunucuda SSH anahtarlarını yapılandırmanız veya SSH aracı yönlendirmesini (ssh -A) kullanmanız gerekebilir.
3) SSH Tünelleme Aracılığıyla Sunucu-Sunucu Aktarımı (Alternatif Yöntem)
Güvenlik duvarı kısıtlamaları nedeniyle doğrudan sunucu-sunucu SSH mümkün değilse, tar ve ssh kullanarak aktarımı yerel makineniz üzerinden yönlendirebilirsiniz:
ssh username1@remote_host1 "tar czf - /path/to/source" | ssh username2@remote_host2 "tar xzf - -C /path/to/destination"Bu, sıkıştırılmış bir arşivi sunucu 1’den doğrudan sunucu 2’ye yerel terminal oturumunuz aracılığıyla akışla aktarır.
Yöntem 4: SFTP (SSH File Transfer Protocol) ile Dosya Kopyalama

SFTP, şifreli bir SSH bağlantısı üzerinden etkileşimli, FTP benzeri bir deneyim sağlar. Tek bir komut aracı olan SCP’nin aksine, SFTP dizinlere göz atabildiğiniz, dosyaları karşıya yükleyebileceğiniz, indirebileceğiniz, yeniden adlandırabileceğiniz ve silebileceğiniz kalıcı bir oturum açar.
1) SFTP Oturumu Başlatma
sftp username@remote_hostSFTP isteminde (sftp>) olacaksınız ve buradan aşağıdaki komutları çalıştırabilirsiniz:
2) Temel SFTP Komutları
| Komut | Açıklama |
|---|---|
| ls | Geçerli uzak dizindeki dosyaları listele |
| lls | Geçerli yerel dizindeki dosyaları listele |
| cd /remote/path | Uzak dizini değiştir |
| lcd /local/path | Yerel dizini değiştir |
| put /local/file /remote/destination | Uzak sunucuya dosya yükle |
| get /remote/file /local/destination | Uzak sunucudan dosya indir |
| mput *.txt | Bir desene uyan birden fazla dosyayı yükle |
| mget *.log | Bir desene uyan birden fazla dosyayı indir |
| mkdir /remote/newdir | Uzak sunucuda dizin oluştur |
| rm /remote/file | Uzak sunucuda dosya sil |
| exit veya quit | SFTP oturumunu kapat |
3) SFTP Aracılığıyla Özel SSH Portuna Bağlanma
sftp -P 2222 username@remote_host4) SFTP Ne Zaman Kullanılır
SFTP, etkileşimli dosya yönetimi oturumları için en uygun seçenektir — örneğin, uzak bir dizin yapısına göz atmak, seçici olarak günlük dosyalarını indirmek veya yapılandırma dosyalarını bir web sunucusuna yüklemek gerektiğinde. FileZilla, Cyberduck ve WinSCP gibi birçok GUI istemcisi, SFTP’yi temel protokol olarak kullanarak teknik olmayan kullanıcılar için de erişilebilir hale getirir.
Yöntem 5: SSH Anahtar Kimlik Doğrulaması ile Dosya Transferlerini Otomatikleştirme

Her dosya transferi için manuel olarak şifre girmek verimsizdir ve otomasyonla uyumlu değildir. SSH anahtar tabanlı kimlik doğrulaması bunu şifresiz, kriptografik olarak güvenli oturum açmaya izin vererek çözer — bu, herhangi bir otomatik yedekleme veya dağıtım iş akışı için bir ön koşuldur.
1) SSH Anahtar Çifti Oluşturun
Yerel makinenizde şunu çalıştırın:
ssh-keygen -t ed25519 -C "your_email@example.com"Not: ed25519 modern, önerilen algoritmadır. Eski sistemlerle uyumluluğa ihtiyacınız varsa -t rsa -b 4096 kullanın.
Anahtarı kaydetmek için istemleri izleyin (varsayılan konum: ~/.ssh/id_ed25519) ve ek güvenlik için isteğe bağlı olarak bir parola ayarlayın.
2) Genel Anahtarınızı Uzak Sunucuya Kopyalayın
ssh-copy-id username@remote_hostBu, genel anahtarınızı uzak sunucudaki ~/.ssh/authorized_keys dosyasına ekler. Şifreniz için son kez istenir.
ssh-copy-id mevcut değilse, bunu manuel olarak yapabilirsiniz:
cat ~/.ssh/id_ed25519.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"3) Şifresiz Kimlik Doğrulamayı Test Edin
ssh username@remote_hostŞifre istenmeden bağlanırsanız, anahtar tabanlı kimlik doğrulaması doğru şekilde çalışıyor demektir.
4) Bir Shell Betiği ile Transferleri Otomatikleştirin
Şifresiz SSH yapılandırıldığında, artık cron işlerinde veya betiklerde dosya transferlerini otomatikleştirebilirsiniz:
#!/bin/bash
# Daily backup script
rsync -avz --delete /var/www/html/ username@backup_server:/backups/www/Bunu crontab’ınıza (crontab -e) ekleyerek her gece çalıştırın:
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1SSH Dosya Aktarım Sorunlarını Giderme

Deneyimli yöneticiler bile sorunlarla karşılaşır. İşte en yaygın sorunlar ve çözümleri:
İzin Reddedildi (publickey)
- Ortak anahtarın uzak sunucuda ~/.ssh/authorized_keys dosyasına doğru şekilde eklendiğini doğrulayın
- ~/.ssh dosyasının 700 izinlerine ve authorized_keys dosyasının 600 izinlerine sahip olduğunu kontrol edin
- SSH daemon’ının anahtar kimlik doğrulamasına izin verdiğini doğrulayın (/etc/ssh/sshd_config dosyasında PubkeyAuthentication yes)
Bağlantı Reddedildi
- SSH hizmetinin çalıştığını doğrulayın: systemctl status sshd
- Doğru portun kullanıldığını kontrol edin
- Güvenlik duvarı kurallarını gözden geçirin: ufw status veya iptables -L
Aktarım Hızı Yavaş
- Sıkıştırmayı etkinleştirin: SCP için -C veya rsync için -z ekleyin
- Daha hızlı bir şifre kullanın: ssh -c aes128-ctr (yüksek gecikmeli bağlantılarda daha hızlı ancak daha az güvenli)
- Büyük aktarımlar için ağınızı doyurmaktan kaçınmak için rsync ile –bwlimit kullanmayı düşünün
Ana Bilgisayar Anahtarı Doğrulaması Başarısız Oldu
- Uzak sunucunun SSH parmak izi değişmiş (güvenlik sorunu veya sunucu yeniden oluşturması gösterebilir)
- Eski anahtarı kaldırın: ssh-keygen -R remote_host
- Yeniden bağlanın ve yeni parmak izini kabul etmeden önce doğrulayın
Doğru Aracı Seçmek: SCP vs. rsync vs. SFTP

| Özellik | SCP | rsync | SFTP |
|---|---|---|---|
| Kullanım kolaylığı | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Delta aktarımları | ❌ | ✅ | ❌ |
| Dizin senkronizasyonu | ✅ (özyinelemeli) | ✅ (–delete ile) | ✅ (manuel) |
| Etkileşimli mod | ❌ | ❌ | ✅ |
| Otomasyon | ✅ | ✅ | ✅ (betiklerle) |
| Bant genişliği verimliliği | Düşük | Yüksek | Düşük |
| En iyi kullanım | Hızlı tek seferlik aktarımlar | Yedeklemeler & senkronizasyon | Etkileşimli gezinme |
SSH Dosya Transferlerinizi Güvence Altına Almak: En İyi Uygulamalar

Hangi aracı kullanırsanız kullanın, sunucularınızı ve verilerinizi korumak için bu güvenlik en iyi uygulamalarını izleyin:
- Parola kimlik doğrulamasını devre dışı bırakın — SSH anahtarlarını özel olarak kullanın ve /etc/ssh/sshd_config dosyasında PasswordAuthentication no ayarını yapın
- Varsayılan SSH portunu değiştirin — Port 22’den uzaklaşmak otomatik brute-force denemelerini önemli ölçüde azaltır
- fail2ban kullanın — Kimlik doğrulama başarısız olan IP’leri otomatik olarak yasaklayın
- SSH erişimini IP’ye göre kısıtlayın — Güvenlik duvarı kurallarını veya AllowUsers yönergelerini kullanarak kimin bağlanabileceğini sınırlayın
- SSH’ı güncel tutun — Bilinen güvenlik açıklarını yamalamak için OpenSSH’ı düzenli olarak güncelleyin
- Güçlü anahtar algoritmaları kullanın — Eski, daha zayıf algoritmaların yerine ed25519 veya rsa-4096 tercih edin
- Web uygulamalarınızı güvence altına alın — SSH güvenliğini bir SSL Sertifikası ile eşleştirerek web hizmetlerinize giden tüm trafiği şifreleyin
Sık Sorulan Sorular

1) SCP ve SFTP arasındaki fark nedir?
SCP, hızlı, tek komutlu dosya transferleri için tasarlanmış etkileşimli olmayan bir komut satırı aracıdır. SFTP, oturum tabanlı bir arayüzde dosyaları tarama, yönetme, yükleme ve indirme imkanı sağlayan etkileşimli bir protokoldür. Her ikisi de şifreleme için SSH kullanır.
2) rsync’i SSH olmadan kullanabilir miyim?
Evet — rsync’in SSH olmadan çalışan kendi daemon modu vardır, ancak daha az güvenlidir. İnternet üzerinden yapılan herhangi bir transfer için her zaman SSH üzerinden rsync kullanın (rsync -e ssh).
3) Sunucum standart olmayan bir SSH portu kullanıyorsa dosyaları nasıl transferim?
SCP ile -P bayrağını (scp -P 2222) veya rsync ile -e “ssh -p 2222” seçeneğini kullanın. SFTP için sftp -P 2222 kullanın.
4) SCP kullanımdan kaldırıldı mı?
OpenSSH geliştiricileri, SCP’nin temel protokolünün sınırlamalar olduğunu belirtmiş ve yeni iş akışları için SFTP veya rsync kullanılmasını önermiştir. Ancak SCP, neredeyse tüm sistemlerde yaygın olarak kullanılabilir ve işlevseldir.
Sonuç

SSH tabanlı dosya transferini uzmanlaştırmak, sunucu yöneticileri, uygulamalar dağıtan veya uzak altyapı bakımı yapan herkes için gerekli bir beceridir. Her aracın kendine özgü yeri vardır:
- SCP hızlı, basit, tek seferlik transferler için ilk seçiminizdir
- rsync yedeklemeler, dağıtımlar ve büyük veri setlerinin verimli senkronizasyonu için vazgeçilmezdir
- SFTP dosyaları anında tarayıp yönetmeniz gereken etkileşimli oturumlarda mükemmeldir
Bu araçları SSH anahtar kimlik doğrulaması ve sağlam güvenlik uygulamalarıyla birleştirmek, tek bir Paylaşımlı Web Hosting hesabından başlayarak Dedicated Sunucular üzerindeki karmaşık çok sunuculu mimarilere kadar ölçeklenebilen, sağlam, otomatikleştirilmiş ve güvenli bir dosya transfer iş akışı sağlar.
Bu becerilerinizi uygulamaya koymak için güvenilir, yüksek performanslı bir hosting ortamı arıyorsanız, AlexHost’un VPS Hosting planlarını keşfedin — tam root erişimi, SSD depolama ve kurumsal sınıf ağ bağlantısı talep eden geliştiriciler ve sistem yöneticileri için tasarlanmıştır.
tasarruf edin