'sshfs password'
leiten mit <<<
bis -o password_stdin
funktioniert auf bash:
sshfs -o password_stdin [email protected]_ip:/home /mnt/backup <<< 'sshfs password'
Laut Handbuch gibt es eine Option -o password_stdin
was es ermöglichen könnte, das Passwort von der Standardeingabe zu lesen, was wahrscheinlich eine Umleitung sein kann. Ich habe es nie benutzt, also spekuliere ich.
Allerdings rate ich dringend von einer solchen Lösung ab, die von Natur aus unsicher ist.
ssh
funktioniert sehr gut mit einem System privater/öffentlicher Schlüssel. Es ist einfach und sicher. Es ist nicht erforderlich, ein Passwort einzugeben oder es in Klartext in ein Shell-Skript zu schreiben. Drücken Sie einfach Ihren öffentlichen Schlüssel auf den Server und Sie können sich sofort verbinden.
-o password_stdin
scheinen nicht auf allen Systemen zu funktionieren, zum Beispiel freeBSD. usw.
Sie können auch expect
verwenden Interpreter, es sollte mit sshfs funktionieren und sollte den Trick machen.
Eine andere Lösung wäre sshpass
, sagen wir zum Beispiel, Sie sichern das Verzeichnis /var/www
Sichern:
name=$(date '+%y-%m-%d')
mkdir /backup/$name && tar -czvf /backup/$name/"$name.tar.gz" /var/www
Hochladen der Sicherungsdatei auf den Sicherungsserver
sshpass -p "your_password" scp -r [email protected]_ip:/home/ /backup/$name
Es wird also ein Verzeichnis mit der heutigen Sicherung hochgeladen
Aber Dennoch, wie oben gesagt wurde, wäre der beste (sichere und einfache) Weg, ein SSH-Schlüsselpaar zu verwenden
Die einzige Unannehmlichkeit wäre, dass Sie den Schlüsselgenerierungsprozess einmal auf jedem Server durchlaufen müssen, den Sie koppeln müssen, aber es ist besser, als ein Passwort im Klartextformat auf allen Servern zu behalten, die Sie sichern möchten :),
Ein Schlüsselpaar richtig generieren
-
Auf lokalem Server
ssh-keygen -t rsa
-
Auf Remote-Server
ssh [email protected]_servers_ip "mkdir -p .ssh"
-
Hochladen von generierten öffentlichen Schlüsseln auf den Remote-Server
cat ~/.ssh/id_rsa.pub | ssh [email protected]_servers_ip "cat >> ~/.ssh/authorized_keys"
-
Berechtigungen auf Remote-Server festlegen
ssh [email protected]_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys"
-
Einloggen
ssh [email protected]_servers_ip
-
SSH-Protokoll v2 aktivieren
entkommentieren Sie „Protokoll 2“ in /etc/ssh/sshd_config
-
Aktivieren der Public-Key-Autorisierung in sshd
Entkommentieren Sie "PubkeyAuthentication yes" in /etc/ssh/sshd_config
-
Wenn StrictModes in /etc/ssh/sshd_config auf yes gesetzt ist, dann
restorecon -Rv ~/.ssh