Ich möchte scp
eine Datei auf einen Remote-Host, und führen Sie von dort aus einen Befehl für die Datei aus und beenden Sie die Remote-Sitzung. Wenn ich ein gewöhnliches Skript schreibe, rufe scp
auf und dann ssh
, werde ich aufgefordert, zwei Passwörter einzugeben. Gibt es eine Möglichkeit zum Kopieren, ssh
, und einen Befehl auf einem entfernten Rechner mit einem Passwort ausführen?
Und wie schreibt man Skripte, die mit dem Benutzer interagieren müssen, um Passwörter einzugeben?
Ich möchte "read" nicht verwenden, da es nicht sicher ist. Ich möchte kein passwortloses ssh
verwenden , da meine private Schlüsseldatei möglicherweise kompromittiert ist, was noch schlimmer ist. Ich habe etwas über „erwarten“ gelesen, bin mir aber nicht sicher, ob es das richtige Tool ist.
Akzeptierte Antwort:
Ich möchte kein passwortloses ssh verwenden, da meine private Schlüsseldatei kompromittiert werden könnte, was noch schlimmer ist.
Nein, das ist falsch. Eine private Schlüsseldatei bietet mehr Sicherheit als ein Passwort. Verwenden Sie eine private Schlüsseldatei. Die private Schlüsseldatei ist mit einem Passwort verschlüsselt; Wenn jemand die Schlüsseldatei erhält, benötigt er immer noch Ihr Passwort. Wenn Sie die Passwort-Authentifizierung verwenden, wäre jeder, der das Passwort erhält, frei.
Führen Sie ssh-agent
aus für die Dauer Ihrer Sitzung. Bevor Sie einen bestimmten Schlüssel verwenden, geben Sie das Passwort mit ssh-add
ein (oder über eine GUI-Eingabeaufforderung). Dann gibt es keine Eingabeaufforderung, wenn Sie sich mit dieser Taste verbinden.