Anahtar Kimlik Doğrulaması Olmadan SSH Üzerinde Parolasız Rsync [Güvenli Değil]


12

SSH üzerinden bağlanacak bir RSync işi ayarlamak istiyorum.

Bilgisayarım (backup @ myhost) ve uzak ana bilgisayar (test @ remhost) var ve tüm içeriği ile ~ / bir şey klasörünü yedeklemem gerekiyor. Ssh kullanıcı sınaması yalnızca ~ / klasöründeki tüm dosya ve klasörlere READ erişimine sahiptir. Test @ remhost: ~ / bir şey klasörünü backup @ myhost: ~ / bak klasörüne kopyalamak için rsync kullanmak istiyorum.

Bu amaçla Ubuntu 11.10'da (Oneiric) BASH ile aşağıdaki komutu kullanıyorum:

rsync -avz -e ssh test@remhost:~/something/ ~/bak/

Enter tuşuna bastıktan sonra şunu alıyorum:

test@remhost's password:

Şifreyi yazıyorum ve rsync çalışıyor.

Şifreyi otomatik olarak girmek ve parametre olarak iletmek veya otomatik olarak girmek ve işi başlatmak için yukarıdaki komutu yapmak istiyorum.

Çalıştırmayı denedim rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/ama yine de şifre istiyor ve sinir bozucu.

Herhangi bir tuş (RSA, DSA veya başka herhangi bir anahtar) hakkında duymak istemiyorum. Sadece oturum açıp işi yapacak basit bir komut istiyorum.

EDIT: Ortak anahtar kimlik doğrulaması devre dışı bırakılmışsa ve bunu değiştiremezseniz, olası bir senaryo olabilir. Örneğin, OpenSSH kullanıyorsanız, dosyayı düzenlemek sshd_configve eklemek için sunucuda kök ayrıcalıklarına sahip olmanız gerekir PubkeyAuthentication yes.

EDIT: Sonunda benim için çalıştı:

sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/

Bu yöntemin şifreyi düz metin olarak gönderdiği ve ortadaki adam saldırılarına karşı savunmasız olduğu için güvenli kabul edilmediğini lütfen unutmayın. Daha güçlü bir güvenlik için kilit yetkilendirmenin kullanılması tavsiye edilir.


3
İnsanlara size cevabı söylememelerini söylerseniz cevap alamazsınız.
Mike Scott

7
Bu anlamsız. Anahtar kimlik doğrulamasında sorun nedir? Anahtar tabanlı kimlik doğrulaması yapılandırılırsa, o andan itibaren işi otomatik olarak tam istediğiniz şekilde yapan basit bir komutunuz olur. Bu yüzden sorunun ne olduğunu göremiyorum. Şifreyi "otomatik" olarak belirtmek için bir yerde saklamak hayal edebileceğim en büyük güvenlik açıklarından biri, bunu yapmanın anlamı nedir?
LGB

Bana güvenlikle ilgili ders vermesi için kimseye ihtiyacım yok. Sonuçları zaten biliyorum. Sadece her şeyi olduğu gibi sunucuda bırakmak ve hiçbir şeyi değiştirmek zorunda değilim. Bilgileriniz için zaten tuşları ile denedim ve hala bana şifre istiyor, bu yüzden argümanınız geçersiz!
Sorin-Mihai Oprea

1
Hayır, iyi nedenlerden dolayı varsayılan olarak böyle bir parametre yoktur. Böyle bir parametre istiyorsanız Migs'ın cevabına bakın.
lumbric

2
@Sorin Mihai Oprea: Senin için işe yaramıyorsa, kötü mü? İlginç. Bilginiz için: ISS'de çalışan bir internet sistemi mühendisi olarak, 100'den fazla sunucuda ssh ile anahtar tabanlı kimlik doğrulama kullanıyoruz. Bizim için çalışıyor, ilginç. Nasıl çalıştığını ve nasıl yapılandırılması gerektiğini anlamadığınız için kötü bir şey demeyin. Eğer haklıysanız, büyük bir ssh sunucu uygulama hatası olarak bazı dikkat çekecek kimse için işe yaramaz :) Bu yüzden benim antrument geçersiz değil, sadece bir nedenle iyi yapılandıramazsınız. Aynı değil, üzgünüm.
LGB

Yanıtlar:


30

belki sshpass'ı deneyin .

kullanmak için yeterince basit görünüyor ... apt üzerinden de kullanılabilir.

Anahtarlarımı kopyalamadan önce böyle bir şey arıyordum, ama anahtarımı zaten her yerde bulduğumdan beri, zaten denemek için zaman ayırmadım.

Yine de bu öğreticideki şifrenizin görünürlüğü ile ilgili yasal uyarıyı not edin.


Bunu yapmak isteyen herkes için:

sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/

Rica ederim. Buradaki diğer herkesle ortak anahtar kimlik doğrulamasının bu konu için en iyi çözüm olduğunu kabul etsem de, alternatifleri kullanırken değiş tokuşlardan haberdar olduğumuz sürece bazen alternatif yöntemlere ihtiyaç vardır.
Migs

Gerçekten ... ama bu yüzden açık kaynak deniyor değil mi? Birden fazla lezzet ... aynı sonuç!
Sorin-Mihai Oprea

1
Sadece şifrelerin kötü olmadığını söylemek için teşekkür ederiz, OLDDDD eski ekipman bazılarımız sadece yeni ekipman gelene kadar almak için bunlara ihtiyacımız var :)
Theodore Howell

7

Çözümünüzde güvenlik tehditleri için daha güvenli olan bir varyasyon, şifrenizi sıkı izinlere sahip bir dosyada saklamak ve -fbayrağı şu şekilde kullanmaktır shpass:

sshpass -f '/home/me/.password' rsync --progress -avz -e ssh
test@remhost:~/something/ ~/bak/

Aradaki fark, çalışan işlemlerin listelenmesinin şifrenizi komut satırında göstermemesidir, artık yalnızca şifrenizin bulunduğu dosyanın yolunu gösterecektir.


Bu cevap kabul edilen cevaptan daha iyi.
vietnguyen09

1

Parola olmadan ortak anahtar kimlik doğrulamasının, yazılan ssh / rsync oturum açma işlemleri için daha iyi bir çözüm olmayacağı bir durum düşünemiyorum.

Her neyse expect, yapmak istediğiniz şeyi başarmanın bir yolu olmalı. Parolayı ssh'a bağlayamazsınız, ancak bu çok benzer bir şeydir. Bunun nasıl yapılacağı burada stackoverflow'da yanıtlanır .


Öneri için teşekkür ederim ama aslında sshpass çok daha basit buldum!
Sorin-Mihai Oprea

1

Sshpass'ın işe yaradığını buldum, ancak termanal SSHPASS read: Enter passphrase for key '/home/ubuntu/.ssh/id_rsa':bunu böyle bir şey yapmanız gerektiğini söyledi :

sshpass -P passphrase -p 'password' rsync /path/to hostname:/destination/path -av --progress -e ssh

Nereye -Pbakacağını belirten nerede çalıştığını sshpass -vve passwordorada olmayan cümle aradığını bularak öğrendim .


0

ilk şey passowrd/bypassşifre giriş olmadan ssh yapmak , u görebileceğiniz gibi biz ssh-copy-id -i ./ssh/id_rsa.pubhedef makine için kullanabilirsiniz .

Bu testten sonra makine şifre olmadan, rsync tabii sonraki yerel makineden içine yolda ssh tarafından uzaktan olabilir target/servermakineye

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.