SSH ile Dosya Kopyalama ⋆ ALexHost SRL

Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills
18.12.2024

SSH ile Dosya Kopyalama

SSH (Secure Shell), şifreli bir bağlantı üzerinden uzak sunuculara güvenli bir şekilde erişmek ve bunları yönetmek için yaygın olarak kullanılan bir protokoldür. SSH ile çalışırken en yaygın görevlerden biri, yerel makineniz ile uzak bir sunucu arasında veya iki uzak sunucu arasında dosya kopyalamaktır.

Bu makalede, SCP (Güvenli Kopyalama Protokolü), rsync ve diğer yöntemleri kullanmak da dahil olmak üzere SSH aracılığıyla dosya kopyalamanın farklı yollarını keşfedeceğiz.


Dosya Transferi için Neden SSH Kullanılmalı?

Dosyaları aktarmak için SSH kullanmak çeşitli avantajlar sunar:

  • Güvenlik: SSH, iletim sırasında hem komutu hem de verileri şifreleyerek hassas bilgilerin korunmasını sağlar.
  • Verimlilik: SSH hızlı ve güvenilirdir, ayrı ayrı oturum açmanıza gerek kalmadan dosyaları doğrudan sistemler arasında aktarmanıza olanak tanır.
  • Otomasyon: SSH, sunucular veya yerel makineler arasında otomatik dosya aktarımlarına olanak tanıyan komut dosyalarına entegre edilebilir.

1. SCP (Güvenli Kopyalama Protokolü) ile Dosya Kopyalama

SCP, SSH aracılığıyla güvenli bir şekilde dosya kopyalamak için kullanılan en popüler araçlardan biridir. Dosyaları yerel bir makineden uzak bir sunucuya, uzak bir sunucudan yerel makinenize veya iki uzak sunucu arasında aktarmanıza olanak tanır.

Temel SCP Sözdizimi:

scp [seçenekler] [kaynak] [hedef]

Örnek 1: Yerel Makineden Uzak Sunucuya Dosya Kopyalama

scp /path/to/local/file username@remote_host:/path/to/remote/destination

Bu örnekte:

  • /path/to/local/file yerel makinenizdeki dosyanın yoludur.
  • username@remote_host SSH kullanıcısı ve uzak sunucunun ana bilgisayar adı veya IP adresidir.
  • /path/to/remote/destination dosyanın uzak sunucuda depolanacağı yoldur.

Örnek 2: Uzak Sunucudan Yerel Makineye Dosya Kopyalama

scp username@remote_host:/path/to/remote/file /path/to/local/destination

Bu durumda, dosya uzak sunucudan yerel makineye aktarılır.

Örnek 3: Bir Dizini Yinelemeli Olarak Kopyalama

Bir dizinin tamamını kopyalamak için -r (recursive) seçeneğini kullanın:

scp -r /path/to/local/directory username@remote_host:/path/to/remote/destination

Bu, dizini ve tüm içeriğini uzak sunucuya aktaracaktır.

Yararlı SCP Seçenekleri:

  • -P [port]: Varsayılandan (22) farklıysa SSH bağlantı noktasını belirtin.
  • -C: Daha hızlı dosya kopyalama için aktarım sırasında sıkıştırmayı etkinleştirin.
  • -i [identity_file]: Kimlik doğrulama için belirli bir SSH özel anahtarı kullanın.

2. Dosyaları rsync ile Kopyalama

rsync, SSH üzerinden dosya aktarımı için bir başka güçlü araçtır. Kaynak ve hedef arasında yalnızca değişiklikleri kopyalayarak zamandan ve bant genişliğinden tasarruf sağladığı için genellikle büyük veya tekrarlayan dosya aktarımları için tercih edilir.

Temel rsync Sözdizimi:

rsync [seçenekler] [kaynak] [hedef]

Örnek 1: Yerel Makineden Uzak Sunucuya Dosya Kopyalama

rsync -avz /path/to/local/file username@remote_host:/path/to/remote/destination

Örnek 2: rsync ile Dizin Kopyalama

rsync -avz /path/to/local/directory/ username@remote_host:/path/to/remote/destination/

Yararlı rsync Seçenekleri:

  • -a: Sembolik bağlantıları, izinleri, zaman damgalarını ve dosya sahipliğini koruyan arşiv modu.
  • -v: Aktarım sırasında ilerlemeyi görüntülemek için ayrıntılı mod.
  • -z: Aktarımı hızlandırmak için sıkıştırmayı etkinleştirin.
  • –sil: Kaynakta artık bulunmayan dosyaları hedeften kaldırın.
  • -e “ssh -p [port]”: Özel bir SSH bağlantı noktası belirtin.

3. İki Uzak Sunucu Arasında Dosya Kopyalama

SSH kullanarak dosyaları doğrudan iki uzak sunucu arasında da kopyalayabilirsiniz. Hem SCP hem de rsync bunu destekler.

Örnek 1: SCP ile İki Uzak Sunucu Arasında Dosya Kopyalama

scp username1@remote_host1:/path/to/file username2@remote_host2:/path/to/destination

Örnek 2: rsync ile İki Uzak Sunucu Arasında Dosya Kopyalama

rsync -avz username1@remote_host1:/path/to/file username2@remote_host2:/path/to/destination

Bu özellikle dosyaları önce yerel makinenize indirmek zorunda kalmadan sunucular arasında aktarmak için kullanışlıdır.


4. SFTP (SSH Dosya Aktarım Protokolü) ile Dosya Kopyalama

SFTP, dosyaları SSH üzerinden güvenli bir şekilde aktarmak için kullanılan başka bir yöntemdir. FTP’ye benzer ancak şifreleme sağlamak için SSH kullanır. SFTP genellikle etkileşimli oturumlarda kullanılır ancak otomatik hale de getirilebilir.

SFTP kullanma:

Bir SFTP oturumu başlatmak için aşağıdaki komutu çalıştırın:

sftp kullanıcı adı@uzak_host

SFTP komut istemine girdikten sonra aşağıdaki gibi komutları kullanabilirsiniz:

  • put /path/to/local/file /path/to/remote/destination: Yerel makinenizden uzak sunucuya bir dosya yükleyin.
  • get /path/to/remote/file /path/to/local/destination: Uzak sunucudan yerel makinenize bir dosya indirin.
  • mput ve mget: Aynı anda birden fazla dosya yüklemek veya indirmek için.

SFTP oturumundan çıkmak için exit veya quit yazın.


5. SSH Anahtarları ile Dosya Aktarımlarını Otomatikleştirme

Tekrarlanan dosya aktarımları için SSH anahtar tabanlı kimlik doğrulama ayarlamak iyi bir fikirdir, böylece her seferinde şifrenizi girmeniz gerekmez.

Adım 1: SSH Anahtar Çifti Oluşturun (Eğer Anahtarınız Yoksa)

Yerel makinenizde çalıştırın:

ssh-keygen -t rsa

Bu, bir genel ve özel anahtar çifti oluşturacaktır.

Adım 2: Açık Anahtarı Uzak Sunucuya Kopyalayın

Açık anahtarınızı uzak sunucuya kopyalamak için aşağıdaki komutu kullanın:

ssh-copy-id kullanıcı adı@uzak_host

Artık şifre girmenize gerek kalmadan oturum açabilir ve dosya aktarabilir, böylece otomasyonu daha kolay hale getirebilirsiniz.


Sonuç

Dosyaları SSH aracılığıyla kopyalamak, yerel makineniz ile uzak bir sunucu arasında veya iki uzak sunucu arasında veri aktarmanın güvenli ve etkili bir yoludur. İster SCP, ister rsync veya SFTP kullanıyor olun, SSH verilerinizin ele geçirilmesini önleyen şifreli dosya aktarımları sunar. SCP gibi araçlar tek seferlik aktarımlar için basittir, rsync ise özellikle büyük dosyalar veya dizinler için sürekli senkronizasyon görevleri için idealdir. Bu araçları anlamak, özellikle uzak sunucu ortamında dosya aktarımlarını daha etkili bir şekilde yönetmenize yardımcı olacaktır.

Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills