Ich tun muß rsync
durch ssh
und will es ohne die Notwendigkeit , automatisch zu tun , der für Passwort vorbei ssh
manuell.
111
Sie sollten eine Schlüsseldatei ohne Passphrase für ssh-Anmeldungen mit Skript verwenden. Dies ist offensichtlich ein Sicherheitsrisiko. Achten Sie darauf, dass die Schlüsseldatei selbst ausreichend gesichert ist.
ssh -i
sollte auf der Client-Seite immer möglich sein. Meinen Sie damit, dass der Server möglicherweise nicht alle Schlüsseltypen unterstützt (z. B. ECDSA)? Das wäre jedoch kein großes Problem, nur ein Fall der Verwendungssh-keygen -t
. Vermisse ich etwasrsync -e
undssh -i
.Verwenden Sie das nicht interaktive Dienstprogramm "sshpass" für den ssh-Passwortanbieter
Auf Ubuntu
Befehl zum rsync
quelle
sshpass -p`cat .password` ssh [...]
. Schützen Sie dann Ihre.password
Datei, indem Siechmod 400 .password
sicherstellen, dass nur Ihr Benutzer sie lesen kann.src_path
Server: Pfad sein, wieserver01.mydomain.local:/path/to/folder
-a
Einschalten von rsync beinhaltet-rlptgoD
, können Sie den Befehl wiersync -az ...
Sie können die Kennwortabfrage auf
rsync
Befehl vermeiden, indem Sie die UmgebungsvariableRSYNC_PASSWORD
auf das Kennwort setzen, das Sie verwenden möchten, oder die--password-file
Option verwenden.quelle
Wenn Sie keinen öffentlichen / privaten Schlüssel verwenden können, können Sie erwarten:
Sie müssen SRC und DEST durch Ihre normalen rsync-Quell- und Zielparameter ersetzen und PASS durch Ihr Kennwort ersetzen. Stellen Sie einfach sicher, dass diese Datei sicher gespeichert ist!
quelle
Red Hat Enterprise Linux Server release 5.11 (Tikanga)
Ich habe es so gemacht:
quelle
remote_port_ssh
eingestellt sein? Es sieht aus wie ein Platzhalter für einen tatsächlichen Wert.Verwenden Sie einen SSH-Schlüssel.
Schau dir an
ssh-keygen
undssh-copy-id
.Danach können Sie Folgendes verwenden
rsync
:quelle
Eine weitere interessante Möglichkeit:
Hinweis: -i dsa_private_file ist Ihr privater RSA / DSA-Schlüssel
Grundsätzlich ist dieser Ansatz dem von @Mad Scientist beschriebenen sehr ähnlich, Sie müssen jedoch Ihren privaten Schlüssel nicht nach ~ / .ssh kopieren. Mit anderen Worten, es ist nützlich für Ad-hoc-Aufgaben (einmaliger kennwortloser Zugriff)
quelle
Folgendes funktioniert für mich:
Ich musste installieren
sshpass
quelle
Die automatische Eingabe des Kennworts für den Befehl rsync ist schwierig. Meine einfache Lösung, um das Problem zu vermeiden, besteht darin, den zu sichernden Ordner bereitzustellen. Verwenden Sie dann einen lokalen Befehl rsync, um den bereitgestellten Ordner zu sichern.
quelle
Obwohl Sie es bereits implementiert haben,
Sie können auch jede erwartete Implementierung verwenden (in Perl, Python finden Sie Alternativen: pexpect, paramiko usw.)
quelle
Ich verwende dazu eine VBScript-Datei auf der Windows-Plattform, die mich sehr gut bedient.
quelle
Die offizielle Lösung (und andere) waren bei meinem ersten Besuch unvollständig, und so kam ich Jahre später zurück, um diesen alternativen Ansatz zu veröffentlichen, falls andere hier landen und beabsichtigen, ein öffentliches / privates Schlüsselpaar zu verwenden:
Führen Sie dies von der Zielsicherungsmaschine aus, die von der Quell- zur Zielsicherung wechselt
rsync -av --delete -e 'ssh -p 59333 -i /home/user/.ssh/id_rsa' [email protected]:/home/user/Server/ /home/keith/Server/
Führen Sie dies vom Quellcomputer aus, der von der Quell- zur Zielsicherung sendet
rsync -av --delete -e 'ssh -p 59333 -i /home/user/.ssh/id_rsa' /home/user/Server/ [email protected]:/home/user/Server/
Wenn Sie keinen alternativen Port für ssh verwenden, sollten Sie die folgenden eleganteren Beispiele berücksichtigen:
Führen Sie dies von der Zielsicherungsmaschine aus, die von der Quell- zur Zielsicherung wechselt:
sudo rsync -avi --delete [email protected]:/var/www/ /media/sdb1/backups/www/
Führen Sie dies vom Quellcomputer aus, der von der Quell- zur Zielsicherung sendet:
sudo rsync -avi --delete /media/sdb1/backups/www/ [email protected]:/var/www/
Wenn Sie weiterhin zur Eingabe eines Kennworts aufgefordert werden, müssen Sie Ihre SSH-Konfiguration einchecken
/etc/ssh/sshd_config
und sicherstellen, dass die Benutzer in Quelle und Ziel jeweils über den jeweiligen öffentlichen SSH-Schlüssel der anderen Benutzer verfügen, indem Sie diese mit sendenssh-copy-id [email protected]
.(Auch dies dient zur Verwendung von SSH-Schlüsselpaaren ohne Kennwort als alternativen Ansatz und nicht zur Weitergabe des Kennworts über eine Datei.)
quelle
Nach der Idee von Andrew Seaford erfolgt dies mit sshfs:
quelle