Ich möchte einen RSync-Job einrichten, der eine Verbindung über SSH herstellt.
Ich habe meinen Computer (backup @ myhost) und den Remote-Host (test @ remhost) und muss den Ordner ~ / something mit all seinen Inhalten sichern. Der SSH-Benutzertest hat nur Lesezugriff auf alle Dateien und Ordner im Ordner ~ /. Ich möchte rsync verwenden, um den Ordner test @ remhost: ~ / something in den Ordner backup @ myhost: ~ / bak zu kopieren.
Zu diesem Zweck verwende ich den folgenden Befehl über BASH unter Ubuntu 11.10 (Oneiric):
rsync -avz -e ssh test@remhost:~/something/ ~/bak/
Nach dem Drücken der Eingabetaste erhalte ich Folgendes:
test@remhost's password:
Ich gebe das Passwort ein und der rsync funktioniert.
Ich möchte den obigen Befehl ausführen, um das Kennwort automatisch einzugeben und als Parameter zu übergeben, oder um es automatisch einzugeben und den Job zu starten.
Ich habe versucht es auszuführen, rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/
aber es fragt immer noch nach dem Passwort und es ist ärgerlich.
Ich möchte keine Art von Schlüsseln hören (RSA, DSA oder andere). Ich möchte nur einen einfachen Befehl, der mich anmeldet und die Arbeit erledigt.
BEARBEITEN: Ein mögliches Szenario könnte sein, wenn die Authentifizierung mit öffentlichem Schlüssel deaktiviert ist und Sie dies nicht ändern können. Wenn Sie beispielsweise OpenSSH verwenden, benötigen Sie Root-Berechtigungen auf dem Server, um die Datei zu bearbeiten sshd_config
und hinzuzufügen PubkeyAuthentication yes
.
EDIT: Dies ist , was für mich endlich geklappt:
sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
Bitte beachten Sie, dass diese Methode nicht als sicher eingestuft wird, da sie das Kennwort im Klartext sendet und für Man-in-the-Middle-Angriffe anfällig ist. Es wird empfohlen, die Schlüsselauthentifizierung für eine stärkere Sicherheit zu verwenden.
Antworten:
Vielleicht versuchen Sie es mit sshpass .
scheint einfach genug zu sein ... es ist auch über Apt erhältlich.
Ich habe nach so etwas gesucht, bevor ich meine Schlüssel kopiert habe, aber da ich meinen Schlüssel ohnehin überall habe, habe ich mir nicht die Zeit genommen, dies zu versuchen.
Beachten Sie jedoch den dortigen Haftungsausschluss in Bezug auf die Sichtbarkeit Ihres Passworts.
Für alle, die dies tun müssen:
quelle
Eine Variante Ihrer Lösung, die vor Sicherheitsbedrohungen sicherer ist, besteht darin, Ihr Kennwort in einer Datei mit engen Berechtigungen zu speichern und das
-f
Flag für Folgendes zu verwendenshpass
:Der Unterschied besteht darin, dass beim Auflisten der ausgeführten Prozesse Ihr Kennwort nicht in der Befehlszeile angezeigt wird, sondern nur der Pfad zu der Datei, in der sich Ihr Kennwort befindet.
quelle
Ich kann mir keine Situation vorstellen, in der die Authentifizierung mit öffentlichen Schlüsseln ohne Passphrase die bessere Lösung für automatisierte ssh / rsync-Anmeldungen wäre.
Auf jeden
expect
Fall sollte dies ein Weg sein, um das zu erreichen, was Sie tun möchten. Sie können das Passwort nicht an ssh leiten, aber das ist etwas sehr Ähnliches. Wie das geht, wird hier bei stackoverflow beantwortet .quelle
Ich fand, dass sshpass funktioniert, aber da das termanal besagt, dass
SSHPASS read: Enter passphrase for key '/home/ubuntu/.ssh/id_rsa':
Sie es in etwa so ausführen müssen:Where
-P
gibt an, nach welcher Eingabeaufforderungsshpass -v
gesucht werden soll. Das habe ich herausgefunden, indem ich ausgeführt habe und herausgefunden habe, ob nach der Phrase gesucht wurde,password
die nicht vorhanden ist.quelle
Das erste, was Sie tun können, ist ssh ohne
passowrd/bypass
das Passwort login, da Sie sehen können, dass wir esssh-copy-id -i ./ssh/id_rsa.pub
zur Zielmaschine verwenden können.Nach diesem Test kann die Maschine per ssh ohne Passwort ferngesteuert werden, dann rsync auf dem Weg natürlich von lokaler Maschine zu
target/server
Maschinequelle