scp

 SCP (Secure Copy Protocol), iki bilgisayar arasında dosya transferi yapmak için kullanılan, güvenli ve şifreli bir protokoldür. SCP, SSH (Secure Shell) üzerinden çalışır ve hem dosyaları hem de dizinleri uzak bir sunucuya veya yerel makinenize güvenli bir şekilde kopyalamanızı sağlar. Genellikle Linux ve Unix tabanlı sistemlerde, hatta Windows’ta da, dosya aktarımı için tercih edilir.


📜 SCP (Secure Copy Protocol) Nedir?

  • SCP, dosya ve dizin transferi yapmak için kullanılan, şifreli bir protokoldür.

  • SSH (Secure Shell) protokolüne dayanır ve SSH üzerinden dosya transferi yapar, yani dosya aktarımı sırasında veriler şifrelenir.

  • SCP, genellikle uzak bir sunucuya dosya gönderme veya sunucudan dosya alma için kullanılır.


🧭 SCP Komutunun Temel Kullanımı

1. SCP ile Dosya Gönderme:

Bir dosyayı yerel bilgisayarınızdan (host) uzak bir sunucuya göndermek için şu komutu kullanabilirsiniz:

bash
scp [yerel_dosya_yolu] [kullanıcı_adı]@[sunucu_adı]:[uzak_dizin_yolu]

Örnek:

bash
scp dosya.txt kullanıcı@192.168.1.10:/home/kullanıcı/backup/

Bu komut, dosya.txt adlı dosyayı yerel bilgisayarınızdan, IP adresi 192.168.1.10 olan sunucunun /home/kullanıcı/backup/ dizinine kopyalar.


2. SCP ile Dosya Alma (Sunucudan):

Bir dosyayı uzak bir sunucudan yerel bilgisayarınıza almak için şu komutu kullanabilirsiniz:

bash
scp [kullanıcı_adı]@[sunucu_adı]:[uzak_dosya_yolu] [yerel_dizin_yolu]

Örnek:

bash
scp kullanıcı@192.168.1.10:/home/kullanıcı/backup/dosya.txt /home/yerel_kullanıcı/dosya.txt

Bu komut, 192.168.1.10 IP adresine sahip sunucudan /home/kullanıcı/backup/dosya.txt dosyasını alıp, yerel bilgisayarınızdaki /home/yerel_kullanıcı/ dizinine kopyalar.


3. Birden Fazla Dosya Gönderme:

Birden fazla dosya göndermek için dosya adlarını aralarına boşluk koyarak yazabilirsiniz veya bir joker karakter kullanabilirsiniz:

bash
scp dosya1.txt dosya2.txt kullanıcı@192.168.1.10:/home/kullanıcı/backup/

Veya joker karakterle tüm dosyaları gönderebilirsiniz:

bash
scp *.txt kullanıcı@192.168.1.10:/home/kullanıcı/backup/

4. Dizin Transferi:

Bir dizini ve içeriğini kopyalamak için -r (recursive) seçeneğini kullanarak tüm alt dizinleri ve dosyaları aktarabilirsiniz:

bash
scp -r /home/kullanıcı/dizin kullanıcı@192.168.1.10:/home/kullanıcı/backup/

Bu komut, /home/kullanıcı/dizin içindeki tüm dosya ve alt dizinleri 192.168.1.10 sunucusundaki /home/kullanıcı/backup/ dizinine kopyalar.


5. Port Belirtme:

Eğer SSH sunucusu farklı bir port üzerinden çalışıyorsa (örneğin: 2222 portu), -P parametresi ile port numarasını belirtebilirsiniz:

bash
scp -P 2222 dosya.txt kullanıcı@192.168.1.10:/home/kullanıcı/backup/

⚙️ SCP’nin Temel Seçenekleri

SeçenekAçıklama
-rDizini ve içeriğini rekürsif olarak kopyalar
-P [port_numarası]SSH sunucusunun kullanacağı portu belirtir
-vKomutun ayrıntılı çıktısını gösterir, hatalar için faydalıdır
-CVeriyi sıkıştırarak transfer eder (hızlı transfer için)
-i [anahtar_dosya]Belirli bir SSH özel anahtarı kullanarak bağlanır

6. SCP ve SSH Anahtarları:

SCP, SSH anahtarlarıyla çalışabilir. Eğer parola girmeden bağlanmak istiyorsanız, SSH anahtarınızı kullanarak güvenli bir bağlantı kurabilirsiniz.

Örnek komut:

bash
scp -i ~/.ssh/anahtar.pem dosya.txt kullanıcı@192.168.1.10:/home/kullanıcı/backup/

Bu komut, ~/.ssh/anahtar.pem dosyasını kullanarak parola girmeden bağlantı kurar.


7. SCP ile Veriyi Sıkıştırarak Gönderme:

Dosya transferini hızlandırmak için -C seçeneğini kullanarak veriyi sıkıştırabilirsiniz:

bash
scp -C dosya.txt kullanıcı@192.168.1.10:/home/kullanıcı/backup/

🌐 SCP’nin Modern Kullanım Alanları

  1. Web Sunucularına Dosya Gönderme:

    • SCP, web geliştiricileri tarafından HTML dosyaları, CSS, JavaScript ve resim dosyalarını sunuculara yüklemek için yaygın olarak kullanılır.

  2. Sunucular Arası Yedekleme:

    • Sistem yöneticileri, veritabanları ve diğer kritik dosyaları uzak sunuculara yedeklemek için SCP’yi tercih ederler.

  3. Veri Aktarımı ve Taşınabilirlik:

    • Veri taşıma işlemleri sırasında güvenli bir dosya transferi sağlamak amacıyla SCP kullanılır.

  4. DevOps ve CI/CD Süreçleri:

    • Yazılım geliştirme süreçlerinde, build dosyalarını ve betikleri uzak sunuculara taşımak için DevOps mühendisleri SCP kullanır.


📦 SCP ve Alternatifleri

  • SFTP (SSH File Transfer Protocol): SCP’nin alternatiflerinden biridir. SCP ile aynı güvenlik özelliklerine sahip olmasına rağmen, SFTP daha fazla dosya yönetimi yeteneği sunar.

  • rsync: SCP’ye göre daha verimli bir dosya transfer aracıdır. Yalnızca değişen veriyi gönderir, bu da büyük veri transferlerinde daha hızlı ve verimli olmasını sağlar.


🎯 Sonuç:

SCP, güvenli ve hızlı dosya transferi yapmanızı sağlayan, SSH protokolü üzerine kurulmuş güçlü bir araçtır. Dosya veya dizin göndermek ve almak için terminal üzerinde kullanılan bu komut, dosya aktarımlarını şifreli bir ortamda gerçekleştirir. SSH anahtarları ve port seçenekleri gibi gelişmiş özellikleri ile hem güvenli hem de verimli bir dosya transferi sağlar.