Gibt es eine Möglichkeit, die ssh-Authentifizierung für mehrere scp-Befehle offen zu halten?

2

Ich muss mehrere kleine Dateien von einem Remote-Computer auf einen lokalen kopieren. Ich muss das mehrmals am Tag machen. Derzeit verwende ich ein Skript, das scp zum Kopieren der Dateien verwendet. Dies ist jedoch langsam, da ich mich jedes Mal authentifizieren muss. Gibt es eine Möglichkeit, neben dem Mounten eine Authentifizierung durchzuführen und die Authentifizierung aufrechtzuerhalten, bis die Kopie abgeschlossen ist?

Yotam
quelle
Warum nicht die einzelnen Dateien in einen Ordner kopieren, komprimieren und dann auf einmal versenden?
Jay
Sie sind über mehrere Ordner in einem Berechnungscluster verteilt, in dem ich kein Skript ausführen möchte. Ich denke, dass dies eine Option ist.
Yotam

Antworten:

1

Verwenden Sie einfach die ControlMaster Merkmal von SSH. Zu diesem Zweck habe ich eine globale Option platziert:

Host *
    ControlPath ~<user>/.ssh/ctrl-%r-%h-%p

In meiner .ssh / config. Natürlich musst du ersetzen <user> entsprechend durch Ihren Anmeldenamen.

Wenn ich eine anfängliche Master-Verbindung einrichten möchte, füge ich '-M' hinzu:

ssh -M <machine>

Dadurch wird ein Kontroll-Socket mit einem oben angegebenen Dateinamen erstellt. Jeder nachfolgende Aufruf von ssh / scp, der darauf abzielt <machine> wird die vorhandene Master-Verbindung wiederverwenden. Erhebliche Beschleunigung des Verbindungsvorgangs, da für die Zeit, zu der die Steuerungsverbindung (== master) besteht, keine weitere Authentifizierung erforderlich ist. Als angenehmer Nebeneffekt müssen Sie Ihre Passphrase nicht erneut eingeben, wenn Sie sie zum Herstellen der Master-Verbindung eingegeben haben.

sparkie
quelle
0

Sie können ssh-add verwenden, um Ihrem ssh-Authentifizierungsagenten private Schlüssel hinzuzufügen. Sehen

man ssh-add

und

man ssh-agent
user570500
quelle