UNIX / Linux'ta SSH ile şifre olmadan Rsync Kurulumu


19

Parola girmeden iki ana bilgisayar arasında nasıl rsync oluşturabilirim?

linux  ssh  rsync 


Maverick143 bir cevap verdi, ancak programlama ile ilgisi olmadığı için bu soru gerçekten StackOverflow'a ait değil. SuperUser.com daha alakalı olurdu.
Martin

Yanıtlar:


30

Aşağıda Geek Stuff'ın makalesi :

1. rsync'i ssh üzerinden test edin (şifre ile):

Uzak sunucuda hesabınız için parola istediğinden emin olmak ve dosyaları uzak sunucuya başarıyla kopyalamak için bir rsync yapın.

Aşağıdaki örnekte, yerel klasör /home/test uzak klasörle /backup/test( 192.168.200.10sunucuda) eşitlenir .

Bu, uzak sunucudaki hesabınızın şifresini istemelidir.

rsync -avz -e ssh /home/test/ user@192.168.200.10:/backup/test/

2. ssh-keygen anahtarlar üretir.

Şimdi sshssh yaptığınızda parola istemeyecek şekilde ayarlayın. Kullanım ssh-keygenkamu ve özel anahtarlar oluşturmak için yerel sunucuda.

$ ssh-keygen

Parola girin (parola içermeyen boş):

Aynı parolayı tekrar girin: Not: Parolayı girmenizi istediğinde sadece enter tuşuna basın ve burada parola vermeyin.

3. ssh-copy-id ortak anahtarı uzak ana bilgisayara kopyalar

Kullanım ssh-copy-id, uzak ana kamu anahtarı kopyalamak için.

ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.200.10

Not: Yukarıda belirtilen, uzak ana bilgisayardaki kullanıcı hesabının şifresini sorar ve genel anahtarı otomatik olarak uygun konuma kopyalar. Ssh-copy-id sizin için işe yaramıyorsa, ssh parolası daha az oturum açmak için daha önce tartıştığımız yöntemi kullanın.

4. ssh üzerinden şifre olmadan rsync gerçekleştirin

Şimdi, parola girmeden uzak ana bilgisayara ssh yapabilmeniz gerekir.

ssh user@192.168.200.10

Rsync'i tekrar gerçekleştirin, bu sefer sizden herhangi bir şifre girmeniz istenmemelidir.

rsync -avz -e ssh /home/test/ user@192.168.200.10:/backup/test/

Bu daha iyi yardımcı olur. troy.jdmz.net/rsync/index.html
MangeshBiradar

5
Kopyayı temizleyip yapıştırın thegeekstuff.com/2011/07/rsync-over-ssh-without-password orijinal yazara referans vermelisiniz .
Lawrence Cherone

Farklı bir kullanıcı kullanmanız gerekiyorsa, ssh-copy-id gerçekleştirdiğinizde bunu yapabilirsiniz: ssh-copy-id -i ~ / .ssh / id_rsa.pub user@192.168.200.10
Finni McFinger

1

ServerA'da ortak anahtarı üretme

$ ssh-keygen
$ Enter passphrase (empty for no passphrase):
$ Enter same passphrase again:

Genel anahtar oluşturulacak ve

~/.ssh/id_rsa.pub

Genel anahtarı uzak ana bilgisayara kopyala

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.100

Veya

  • İd_rsa.pub dosyasını açın, içeriği kopyalayın
  • Rsync komutunda aynı kullanıcıyı kullanarak ServerB oturumu açma
  • ServerB içinde, içindekileri ekleyin ~/.ssh/authorized_keys. Varsa dosyayı oluşturun. Dosya modunun 700 olduğundan emin olun.

0

Tüm bu rsync önerileri, Ağustos 2017'de Ubuntu 16.04 LTS'deki en son sürümü kullanarak başarısız oluyor. Tek bir kişi işe yaramıyor.

Ayrıca, dosya sunucusunda çalışan bir rsync arka plan programı gerektirme eksikliğini de paylaşırlar.

Bu cevap genel bir Linux NAS ile çalışır

BURADA ADIMLAR:
1) Aşağıda gösterildiği gibi rsync kullanın. (/ mnt veya / media altındaki bir dizine veya bağladığınız bir cihaza. hangisi önemli değil) 2) scp İLE dosyaları aşağıda gösterildiği gibi AKTARIN. FileZilla da çalışacaktır.

Tüm bunlar (FileZilla hariç) şifre olmadan cron'da çalışabilir.


Bu kurulum çok iyi çalışıyor. Şifreye ihtiyacınız olan tek zaman, RSA şifresiz oturum açma bilgilerini ayarlamak için ilk ssh-copy-id'yi ayarlamanızdır. Sonra bir kez FileZilla içine programlayın. Bundan sonra, her gün, şifre istemi gerçekleşmez. Bu kolay. Ve en iyi yanı, rsync programının tüm avantajlarını kullanabilmeniz.

Bu cevap rsync'in şifresiz nasıl kullanılacağını açıklar.

Ayrıca, her iki sisteme de başka bir arka plan programı (rsync) yüklemenize gerek yoktur.

Henüz yapmadıysanız, bunu yapın:

ssh-keygen
ssh-copy-id -i ~/.ssh/id_rse.pub NASserver

ve bununla test edin:

ssh NASserver

ve belki böyle bir şey:

scp myfile myusername@NASserver:Documents

Ben sdb1 (/ mnt altına monte ve rsync hariç) bir alt dizine önyükleme sürücüsünü kopyalamak için rsync kullanın ikinci bir sabit disk var.

Fiziksel bir sabit sürücünüz yoksa ve yeterli alanınız varsa, / mnt (veya / media) altında bir alt dizin oluşturur ve bunu kullanırsınız.

Dizin hariç tutulduğu sürece, ayrı bir sürücüde olup olmadığı önemli değildir.

Yedek komut dosyası şöyledir:

cls
echo "EMPTYING TRASH"
rm ~/.local.share/Trash/*
echo "====================================================================="
echo "         BEGINNING rsync from root to /mnt/full/sysbkp"
echo "====================================================================="
time sudo rsync -aAXv / --delete --ignore-errors --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/full/mysystem

Rsync SONRASI bir komut dosyası kullanır:

Hedef NASserver'da her zaman yeni bir dizin oluşturuyorum: / mnt / fullsys / mysystem böylece yalnızca ilgili dosyalar aktarılır.

ssh -e"mv /mnt/fullsys/mysystem mysystem.bak" myusername@NASserver
ssh -e"mkdir /mnt/fullsys/mysystem" myusername@NASserver
scp -r /mnt/full/mysystem myusername@NASserver:/mnt/fullsys/mysystem

İşte bu kadar! Biraz zaman alır ama sonra yapılır.

Her iki komut dosyası da cron'da iyi çalışabilir.


Alternatif olarak, NAS sunucusunu manuel olarak göndermek için FileZilla kullanmaktır.

make a new directory and enter itSilinmeler olabileceğinden, her zaman hedef 1 TB HDD'deki FileZilla aracılığıyla yalnızca ilgili dosyalar aktarılır.

Yalnızca aktarım tamamlandığında eski sürümü kaldırırım.

Voila. Başarı.


-1

adresi kullanıcının daha iyi olacağını işaretlemek

ssh-copy-id -i ~/.ssh/id_rsa.pub <user_in_server>@192.168.1.100

2
Bu soruya cevap verebilirken, neden böyle yaptığını açıklamak daha iyi bir yanıt olacaktır .
DavidPostill

Ayrıca sözdizimi. Ben bunun böyle bir şey komut ikamesi olarak kullanıldığını düşünüyorum: rsync -aAVx $(ssh-copy-id -i /home/myusername/.ssh/id_rsa.pub)o zaman tüm excludesve --deletevb henüz işe yaramadı ama bu gördüğüm en yakın. Sözde bunu zaten sshve scphedef sunucuya yapabilseniz bile yapmanız gerekir ve rsync arka plan programının çalışması gerekir, çünkü normal sftp formatını kullanmaz. Hala arıyorum.
SDsolar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.