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:
-PUzak ana bilgisayar ssh portunu belirtir.
-pDosyaları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.
-CBu seçenek, scp'ye hedef makineye gönderilirken verileri sıkıştırmaya zorlar.
-rBu 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ı@220.127.116.11:/uzak/dizin
Burada,
dosya.txt kopyalamak istediğimiz dosyanın adı,
uzak_kullanıcı uzak sunucudaki kullanıcı,
18.104.22.168 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ı@22.214.171.124'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ı@126.96.36.199:/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ı@188.8.131.52:/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ı@184.108.40.206:/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
220.127.116.11 ile uzak bir sunucudan
dosya.txt adlı bir dosyayı kopyalamak için aşağıdaki komutu çalıştırın:
$ scp uzak_kullanıcı@18.104.22.168:/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.