Linux SCP Nedir?

SCP (güvenli kopya), dosyaları ve dizinleri iki konum arasında güvenli bir şekilde kopyalamanıza izin veren bir komut satırı yardımcı programıdır. SCP  ile  dosya ve dizinlerinizi  aktarırken hem dosyalar hem de parola şifrelenir, böylece trafiği gözetleyen hiç kimse hassas bir şey alamaz. SCP ile aşağıdaki gibi kopyalama işlemleri gerçekleştirebilirsiniz.

  • Yerel sisteminizden uzak bir sisteme.
  • Uzak bir sistemden yerel sisteminize.
  • Yerel sisteminizden iki uzak sistem arasında.

Bu kılavuzda, pratik örnekler ve en yaygın scp seçeneklerini ile komutu nasıl kullanacağımıza bakalım.

Her iki sistemde de aynı adı ve konumu paylaşan dosyaları kopyalarken dikkatli olun, scp uyarı vermeden dosyaların üzerine yazacaktır.

SCP, veri aktarımı için ssh kullanır. 

SCP kullanırken, uzak sistemlerde kimlik doğrulaması için bir ssh anahtarı veya parola gerektirir.

SCP, kimlik doğrulama için gerekliyse parolalar veya parolalar ister.

Dosyaları kopyalayabilmek için en azından kaynak dosya üzerinde okuma ve hedef sistemde yazma izninizin olması gerekir.

SCP Komut Sözdizimi

Linux'te komut sözdizimi önemlidir. O yüzden, komutun nasıl kullanılacağına geçmeden önce scp, temel sözdizimine bakalım. Aşağıdaki örneklerde bir kaç sözdizimine bakalım.

scp [option] file [user@remote-ip:/path]
scp [option] [user@source-ip:source-file] [user@dest-ip:dest-file]

SCP en yaygın kullanılan seçenekler.

  • -P Uzak ana bilgisayar ssh bağlantı noktasını belirtir. (-P 22 gibi.)
  • -p Orijinal dosyadaki değişiklik zamanlarını, erişim zamanlarını ve modları korumak için kullanılır.
  • -q Sessiz mod, ilerleme ve hata dışı mesajları bastırmak istiyorsanız bu seçeneği kullanabilirsiniz.
  • -C Bu seçenek , verileri hedef makineye gönderilirken sıkıştırmaya zorlar .
  • -r Bu seçenek,  scp dizin ve alt dizinler yinelemeli olarak kopyalanmasını söyler
  • -i Bu seçenek, hedef makinaya parola yerine bir ssh anahtar ile dosya kopyalamanızı sağlar. (scp -i mehmet.pem gibi.)

Lokalde Uzağa Dosya Kopyalama

Uzak ana bilgisayardaki SSH, varsayılan olarak 22 portundan farklı bir bağlantı noktasını dinliyorsa,  -P seçeneğini kullanarak bağlantı noktasını belirtebilirsiniz. -P 2222 gibi.

İlk olarak SCP ile lokal sunucudan uzak bir sunucuya dosya gönderelim. Aşağıdaki örnekte, 

- P ile dosya göndereceğim makinana farklı bir bağlantı noktası  dinlediği için ilk olarak bunu belirttim. 

metin.txt  Gönderilecek dosya/dizin.

mehmet.oz@uzak-ip-adres Hedef kullanıcı adı ve ip adresi

:~/ Uzak makina dosyanın kopyalanacağı yol. Bu örnekte kullanıcının ev dizini belirtilmiştir.

scp -P 2222 metin.txt mehmet.oz@10.106.246.37:~/ 

Lokalden Uzağa Dizin Kopyalama

Bir dizini yerelden uzak sisteme kopyalamak için -r seçeneğini kullanmamız yeterlidir. 

scp -r /home/x/klasor/ kali@10.106.246.32:/tmp 

Uzaktan Uzağa Dosya Kopyalama

İki uzak sistem arasında dosya kopyalayalım. 

 scp x@10.106.246.55:/home/x/uzakdosya.txt kali@10.106.246.32:/tmp 

Yukarıdaki işlemdeki trafiği komutun verildiği makine üzerinden yönlendirmek için şu -3 seçeneği kullanabilirsiniz.

scp -3 x@10.106.246.55:/home/x/uzakdosya.txt kali@10.106.246.32:/tmp

 Uzaktan Lokale Dosya Kopyalama

Şimdi ise uzaktaki bir sistemden yerel bir sisteme dosya kopyalayalım. Uzaktaki sistemde dosyanın tam olarak yolunu belirtmemiz gerekmektedir. Sonrasında ise kopyalanacak yolu yazıyoruz. Aşağıdaki örnekte ev dizinine kopyalama işlemi gerçekleştirilmiştir.

scp -r kali@10.106.246.32:/tmp/klasor/ ~/ 

Key ile Uzaktan Lokale Dosya Kopyalama (Windows)

Şimdi ise amazondaki bir makinadan windows makinaya dosya çekelim. Aslında yukarıdaki örnek ile aynıdır, sadece key kullanılarak işlem yapılmıştır. Komut satırını açtıktan sonra, scp aracını aynı şekilde kullanabiliyoruz. İlk olarak kopyalanacak dosyanın tam yolu, sonrasında ise windows üzerinde kopyalanacağı klasörü göstermemiz yeterlidir. Key yok ise parolada kullanabilirsiniz.

scp username@remote-ip-address:/file targed-folder 

Key ile Lokalden Uzağa Dosya Kopyalama

Son örneğimizde ise, hedef makinada parola yerine bir ssh anahtar ile dosya kopyalayalım. Amazon sunucusunda ihtiyacım olduğunda kullanmıştım.

Artık scp ile dosyaları ve dizinleri kopyalamak için komutu nasıl kullanacağınızı öğrendiniz. Umarım faydalı olmuştur.

 

Blog'a Dön