Parola girmeden iki ana bilgisayar arasında nasıl rsync oluşturabilirim?
Parola girmeden iki ana bilgisayar arasında nasıl rsync oluşturabilirim?
Yanıtlar:
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.10
sunucuda) 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
ssh
ssh yaptığınızda parola istemeyecek şekilde ayarlayın. Kullanımssh-keygen
kamu 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/
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
~/.ssh/authorized_keys
. Varsa dosyayı oluşturun. Dosya modunun 700 olduğundan emin olun.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 it
Silinmeler 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ı.
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
rsync -aAVx $(ssh-copy-id -i /home/myusername/.ssh/id_rsa.pub)
o zaman tüm excludes
ve --delete
vb henüz işe yaramadı ama bu gördüğüm en yakın. Sözde bunu zaten ssh
ve scp
hedef 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.