Ich erstelle ein kleines Backup-Skript mit sshfs
:
sshfs backup_user@target_ip:/home /mnt/backup
Gibt es eine Möglichkeit, das Kennwort in diesen Befehl aufzunehmen?
Oder gibt es eine andere Dateiübertragungslösung, bei der das Anmeldekennwort außer FTP / SFTP eingegeben werden kann?
Antworten:
-o password_stdin
scheinen nicht auf allen Systemen zu funktionieren, zum Beispiel freeBSD. usw.Sie können auch
expect
Interpreter verwenden, es sollte mit sshfs funktionieren und den Trick machen.Eine andere Lösung wäre
sshpass
zum Beispiel, dass Sie das Verzeichnis / var / www sichernSichern:
Hochladen der Sicherungsdatei auf den Sicherungsserver
So wird es Verzeichnis mit dem heutigen Sicherung lädt
aber noch, wie es höher gesagt wurde, am besten (sicher und einfach) Weg SSH - Schlüsselpaar zu verwenden , wäre
der einzige Nachteil wäre, dass Sie durch den Schlüsselerzeugungsprozess auf jedem Server einmal gehen Sie müssen ein Pairing durchführen, es ist jedoch besser, als auf allen Servern, die Sie sichern möchten, ein Kennwort im Nur-Text-Format
beizubehalten
Auf lokalem Server
Auf dem Remote-Server
Hochladen generierter öffentlicher Schlüssel auf den Remote-Server
Festlegen von Berechtigungen auf dem Remote-Server
Einloggen
Aktivieren des SSH-Protokolls v2
Aktivieren der Autorisierung öffentlicher Schlüssel in sshd
Wenn StrictModes in / etc / ssh / sshd_config auf yes gesetzt ist, dann
quelle
Laut Handbuch gibt es eine Option, mit
-o password_stdin
der das Kennwort möglicherweise von der Standardeingabe gelesen werden kann. Dies kann wahrscheinlich eine Umleitung sein. Ich habe es nie benutzt, also spekuliere ich.Ich rate jedoch dringend von einer solchen Lösung ab, die von Natur aus unsicher ist.
ssh
funktioniert sehr gut mit einem System von privaten / öffentlichen Schlüsseln. Es ist einfach und sicher. Es ist nicht erforderlich, ein Kennwort einzugeben oder es in einem Shell-Skript in Klartext zu schreiben. Drücken Sie einfach Ihren öffentlichen Schlüssel auf den Server und Sie können sofort eine Verbindung herstellen.quelle
printf "my_password\n" | sshfs username@hostname:/remote_fs $HOME/local_dir
-o password_stdin
Option sehe .printf "my_password\n" | sshfs -o password_stdin user@hostname:/ $HOME/local_dir
PS Ich bin auf Debian Buster PPS. Dies funktioniert, fordert aber zur Eingabe eines Passworts auf:sshfs -o password_stdin user@hostname:/ $HOME/local_dir
Kochend die
"sshfs password"
mit<<<
zu-o password_stdin
Arbeiten auf bash:quelle
Mit der Option "-o password_stdin" können Sie Ihr Kennwort weiterleiten.
Das heißt, Schlüssel sind eine bessere Option, es sei denn, Ihr Dienstanbieter lässt Sie nicht für SFTP verwenden. (Dies ist einer der bemerkenswerten Fehler von WP Engine.)
quelle
Skript einbinden:
Aushängen:
quelle
Wenn Sie diese
-o password_stdin
Option verwenden, scheint sie möglicherweise nicht zu funktionieren, da sshfs Sie fragt, ob Sie eine Verbindung zum Host herstellen möchten oder nicht (wenn Sie zum ersten Mal eine Verbindung herstellen und diese Option nicht hinzugefügt wird) zur bekannten hosts-datei noch). Wenn Sie es in einem Stapel ausführen, werden Sie nie sshfs fragen sehen. Problemumgehungen, um dies zu vermeiden, sind:-o StrictHostKeyChecking=no
Option zu sshfs oder hinzuquelle