Wie übergeben Sie Ihr Kennwort automatisch für rsync SSH Befehl?
Muss ich tun rsync
durch ssh
und wollen, um es automatisch zu tun, ohne die Notwendigkeit der Weitergabe Passwort für ssh
manuell.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie ein keyfile ohne Passwort für scripted ssh-logins. Das ist natürlich ein Sicherheitsrisiko, aufpassen, dass das keyfile selbst ist ausreichend gesichert.
Anweisungen zum einrichten passwortlosen ssh Zugang hast
ssh -i
sollte immer möglich sein, auf der client-Seite. Meinst du, dass der server unterstützt möglicherweise nicht alle key-Typen (z.B. ECDSA)? Das wäre kein großes Problem, obwohl, nur ein Fall der Verwendungssh-keygen -t
. Bin ich etwas fehlt?rsync -e
undssh -i
.Verwenden "sshpass" non-interactive ssh-Passwort-utility-Anbieter
Auf Ubuntu
Befehl rsync
sshpass -p`cat .password` ssh [...]
. Dann schützen Sie Ihre.password
Dateichmod 400 .password
sicher, dass nur Ihre user können es Lesen.src_path
sein sollte-server:Pfad, etwa so:server01.mydomain.local:/path/to/folder
-a
Schalter auf rsync beinhaltet-rlptgoD
können Sie kürzen Sie den Befehl wie diesen:rsync -az ...
Vermeiden Sie die Kennwort-Eingabeaufforderung auf
rsync
Befehl durch setzen der environment-variableRSYNC_PASSWORD
um das Passwort, das Sie verwenden möchten, oder verwenden Sie die--password-file
option.Wenn Sie nicht verwenden können, eine öffentliche/private Schlüssel, die Sie verwenden können, zu erwarten:
Müssen Sie Sie zu ersetzen, SRC und DEST mit dem normalen rsync-Quell-und Ziel-Parameter, und ersetzen Sie PASSIEREN mit Ihrem Passwort. Nur stellen Sie sicher, dass diese Datei sicher gespeichert!
Red Hat Enterprise Linux Server release 5.11 (Tikanga)
Verwenden Sie einen ssh-Schlüssel.
Blick auf
ssh-keygen
undssh-copy-id
.Danach können Sie eine
rsync
diese Weise :Weitere interessante Möglichkeit:
Hinweis: -ich dsa_private_file, die Ihre RSA/DSA private key
Grundsätzlich ist dieser Ansatz sehr ähnlich wie der von @Mad Scientist, aber Sie müssen nicht kopieren Sie Ihren privaten Schlüssel ~/.ssh. In anderen Worten, es ist nützlich für ad-hoc-Aufgaben (eine Zeit ohne Passwort-Zugang)
Ich so:
Obwohl Sie bereits implementiert es jetzt,
können Sie auch beliebige erwarten Umsetzung (finden Sie alternativen in Perl, Python: pexpect, paramiko, etc..)
Automatisch die Eingabe des Passwort für den rsync-Befehl ist schwierig. Meine einfache Lösung das problem zu vermeiden, ist die Montage der Ordner gesichert werden. Dann verwenden Sie einen lokalen rsync-Befehl, um backup gemounteten Ordner.
Folgendes funktioniert bei mir:
Musste ich installieren
sshpass
Verwende ich eine VBScript-Datei, dies zu tun, auf Windows-Plattform, es Servern mir sehr gut.
Die offizielle Lösung (und andere) waren unvollständig, wenn ich zum ersten mal besucht, so kam ich zurück, Jahre später, nach diesem alternativen Ansatz bei jeder anderen Wunde hier oben, die beabsichtigen, die Verwendung eines public - /private key-paar:
Führen Sie dieses aus dem Ziel-backup-Maschine, die zieht von der Quelle zum Ziel-backup -
rsync -av --delete -e 'ssh -p 59333 -i /home/user/.ssh/id_rsa' [email protected]:/home/user/Server//home/keith/Server/
Führen Sie diese aus der Quelle-Maschine, die sendet von der Quelle zum Ziel-backup -
rsync -av --delete -e 'ssh -p 59333 -i /home/user/.ssh/id_rsa' /home/user/Server/[email protected]:/home/user/Server/
Und, wenn Sie nicht über einen alternativen port für den ssh, dann wär die elegantere Beispiele:
Führen Sie dieses aus dem Ziel-backup-Maschine, die zieht von der Quelle zum Ziel-backup:
sudo rsync -avi --delete [email protected]:/var/www//media/sdb1/backups/www/
Führen Sie diese aus der Quelle-Maschine, die sendet von der Quelle zum Ziel-backup:
sudo rsync -avi --delete /media/sdb1/backups/www/[email protected]:/var/www/
Wenn Sie noch immer nach einem Passwort gefragt, dann müssen Sie überprüfen Sie Ihre ssh-Konfiguration in
/etc/ssh/sshd_config
und stellen Sie sicher, dass die Benutzer in Quelle und Ziel jeweils der anderen jeweiligen öffentlichen ssh-Schlüssel senden jeweils über mitssh-copy-id [email protected]
.(Wieder, dies ist für die Verwendung von ssh-key-paar ohne Passwort, als ein alternativer Ansatz, und nicht für die Weitergabe des Passworts immer über eine Datei.)
Folgende Idee gepostet von Andrew Seaford, dies geschieht mit sshfs: