Güvenli Dosya Aktarımı İçin SCP Komutu Nasıl Kullanılır

SCP (güvenli kopya), iki konum arasında dosya ve dizinleri güvenli bir şekilde kopyalamanızı sağlayan bir komut satırı yardımcı programıdır.
Scp ile bir dosya veya dizini kopyalayabilirsiniz:
- Yerel sisteminizden uzak bir sisteme.
- Uzak bir sistemden yerel sisteminize.
- Yerel sisteminizden iki uzak sistem arasında.
Scp ile veri aktarırken, hem dosyalar hem de parola şifrelenir, böylece trafiğe göz atan her hangi biri hassas bir veri elde edemez.
Bu yazımda, scp komutunun pratik örnekler ve en yaygın scp
seçeneklerinin ayrıntılı açıklamaları ile nasıl kullanılacağını göstereceğim.
SCP Komut Sözdizimi
Scp komutunun nasıl kullanılacağına başlamadan önce, temel sözdizimini inceleyerek başlayalım.
scp [SEÇENEK] [kullanıcı@]KAYNAK_HOST:]dosya1 [kullanıcı@]HEDEF_HOST:]dosya2
SEÇENEK
- şifre, ssh yapılandırması, ssh bağlantı noktası, sınır, özyinelemeli kopyalama vb gibi scp seçenekleri.[kullanıcı@]KAYNAK_HOST:]dosya1
- kaynak dosya[kullanıcı@]HEDEF_HOST:]dosya2
- hedef dosya
Yerel dosyaların mutlak veya göreceli bir yol kullanılarak belirtilmesi gerekirken uzak dosya adları bir kullanıcı ve ana bilgisayar ip'sini içermelidir.
scp
davranışının her yönünü kontrol eden bir dizi seçenek sunar. En yaygın kullanılan seçenekler:
-P
Uzak ana bilgisayar ssh portunu belirtir.-p
Dosyaların değiştirme ve erişim zamanalarını korur.-q
İlerleme ölçer ve hata dışı mesajları bastırmak istiyorsanız bu seçeneği kullanın.-C
Bu seçenek, scp'ye hedef makineye gönderilirken verileri sıkıştırmaya zorlar.-r
Bu seçenek scp'ye dizinleri yinelemeli olarak kopyalamasını söyler.
Başlamadan Önce
Scp komutu veri aktarımı için ssh'a dayanır, bu nedenle uzak sistemlerde kimlik doğrulaması için bir ssh anahtarı veya parola gerektirir.
İki nokta üst üste (:
), scp'nin yerel ve uzak konumları birbirinden nasıl ayırdıpının gösterimidir.
Dosyaları kopyalayabilmek için kaynak dosya üzerinde en azından okuma iznine ve hedef sisteme yazma iznine sahip olmalısınız.
Her iki sistemde de aynı adı ve konumu paylaşan dosyaları kopyalarken dikkatli olun, scp uyarı yapmadan dosyaların üzerine yazacaktır.
Büyük dosyaları aktarırken, scp komutunun bir screen
veya tmux
oturumunda çalıştırılması önerilir.
Scp ile İki Sistem Arasındaki Dosyaları ve Dizinleri Kopyalayın
Scp Komutunu Kullanarak Yerel Dosyayı Uzak Bir Sisteme Kopyalama
Bir dosyayı yerelden uzak bir sisteme kopyalamak için aşağıdaki komutu çalıştırın:
$ scp dosya.txt uzak_kullanıcı@173.146.193.209:/uzak/dizin
Burada, dosya.txt
kopyalamak istediğimiz dosyanın adı, uzak_kullanıcı
uzak sunucudaki kullanıcı, 173.146.193.209
ise sunucu IP adresidir. /uzak/dizin
, dosyayı kopyalamak istediğiniz dizinin yoludur. Bir uzak dizin belirtmezseniz, dosya uzak kullanıcı giriş dizinine kopyalanır.
Kullanıcı şifresini girmeniz istenir ve aktarım işlemi başlar. ssh key ile bağlanıyorsanız şifre girmeniz istenmez.
Çıktı:
uzak_kullanıcı@173.146.193.209's password:
dosya.txt 100% 0 0.0KB/s 00:00
Dosya adının hedef konumdan eklenmez ise scp
dosyayı orijinal adıyla kopyalar. Dosyayı farklı bir adla kaydetmek istiyorsanız, yeni dosya adını belirtmeniz gerekir:
$ scp dosya.txt uzak_kullanıcı@173.146.193.209:/uzak/dizin/yeni-dosya-adi.txt
Uzak ana bilgisayardaki SSH varsayılan 22
dışında bir bağlantı noktasını dinliyorsa, -P
bağımsız değişkenini kullanarak bağlantı noktasını belirtebilirsiniz:
$ scp -P 2322 dosya.txt uzak_kullanıcı@173.146.193.209:/uzak/dizin
Bir dizini kopyalama komutu, dosyaları kopyalarken olduğu gibidir. Tek fark, özyinelemede -r
bayrağını kullanmanız gerektiğidir.
$ scp -r /yerel/dizin uzak_kullanıcı@173.146.193.209:/uzak/dizin
Scp Komutunu Kullanarak Uzak Sistemdeki Dosyayı Yerel Sisteme Kopyalama
Bir dosyayı uzaktaki sistemden yerel bir sisteme kopyalamak için, uzak konumu kaynak olarak ve yerel konumu hedef olarak kullanın.
Örneğin, IP 173.146.193.209
ile uzak bir sunucudan dosya.txt
adlı bir dosyayı kopyalamak için aşağıdaki komutu çalıştırın:
$ scp uzak_kullanıcı@173.146.193.209:/uzak/dizin/dosya.txt /yerel/dizin
Uzak makinede şifresiz bir SSH girişi ayarlamadıysanız, kullanıcı şifresini girmeniz istenir.
Scp Komutunu Kullanarak İki Uzak Sistem Arasında Dosya Kopyalama
Rsync
'in aksine, scp kullanırken, dosyaları bir bilgisayardan başka bir uzak makineye aktarmak için sunuculardan birinde oturum açmanız gerekmez.
Aşağıdaki komut /dosyalar/dosya.txt
dosyasını uzak ana bilgisayar host1.com
'dan uzak ana bilgisayar host2.com
'daki dizine /dosyalar
'a kopyalar.
$ scp kullanıcı[email protected]:/dosyalar/dosya.txt kullanıcı[email protected]:/dosyalar
Her iki uzak hesap için de parola girmeniz istenir. Veriler doğrudan bir uzak ana bilgisayardan diğerine aktarılacaktır.
Trafiği komutun verildiği makineye yönlendirmek için -3 seçeneğini kullanın:
$ scp -3 kullanıcı[email protected]:/dosyalar/dosya.txt kullanıcı[email protected]:/dosyalar
Sonuç
Bu yazımda, dosyaları ve dizinleri kopyalamak için scp
komutunun nasıl kullanılacağını öğrendiniz.