Versuchen Sie ssh-add
, Sie müssen ssh-agent
Ihren privaten Schlüssel ausführen und halten
(Ok, wenn Sie auf die aktualisierte Frage antworten, führen Sie zuerst ssh-keygen
einen öffentlichen und einen privaten Schlüssel aus, wie Jefromi erklärt hat . Sie legen den öffentlichen Schlüssel auf dem Server ab. Sie sollten eine Passphrase verwenden, wenn Sie nicht das Äquivalent einer Ebene haben -text Passwort in Ihrem privaten Schlüssel. Aber wenn Sie dies tun, dann brauchen Sie als praktische Angelegenheit ssh-agent
wie unten erklärt.)
Sie möchten beim ssh-agent
Anmelden im Hintergrund ausgeführt werden. Sobald Sie sich angemeldet haben, sollten Sie ssh-add
einmal und nur einmal ausgeführt werden, um dem Agenten Ihre Passphrase zu geben und Ihren Schlüssel zu dekodieren. Der Agent sitzt dann einfach im Speicher, Ihr Schlüssel ist entsperrt und geladen und kann jedes Mal verwendet werden, wenn Sie irgendwo ssh.
Alle Befehle der ssh-Familie 1 konsultieren dann den Agenten und können automatisch Ihren privaten Schlüssel verwenden.
Unter OSX (err, macOS ) werden GNOME- und KDE-Systeme ssh-agent
normalerweise automatisch für Sie gestartet. Ich werde die Details durchgehen, falls Sie wie ich auch eine Cygwin- oder andere Windows-Umgebung haben, in der dies mit Sicherheit nicht für Sie erledigt wird.
Beginnen Sie hier : man ssh-agent
.
Es gibt verschiedene Möglichkeiten, den Agenten automatisch auszuführen. Wie in der Manpage erläutert, können Sie es so ausführen, dass es übergeordnet zu allen anderen Prozessen Ihrer Anmeldesitzung ist. Auf diese Weise befinden sich die bereitgestellten Umgebungsvariablen automatisch in allen Ihren Shells. Wenn Sie (später) aufrufen ssh-add
oder ssh
beide Zugriff auf den Agenten haben, haben alle Umgebungsvariablen mit magischen Socket-Pfadnamen oder was auch immer.
Alternativ können Sie den Agenten als normales untergeordnetes Element ausführen, die Umgebungseinstellungen in einer Datei speichern und diese Datei beim Start in jeder Shell als Quelle verwenden.
Meine OSX- und Ubuntu-Systeme führen automatisch die Einrichtung zum Starten des Agenten durch. Ich muss sie also nur ssh-add
einmal ausführen . Versuchen Sie es auszuführen ssh-add
und prüfen Sie, ob es funktioniert. Wenn ja, müssen Sie dies nur einmal pro Neustart tun.
Mein Cygwin-System musste manuell erstellt werden, also habe ich dies in meinem .profile
und ich habe .bashrc
Quelle .profile
:
. .agent > /dev/null
ps -p $SSH_AGENT_PID | grep ssh-agent > /dev/null || {
ssh-agent > .agent
. .agent > /dev/null
}
Die .agent
Datei wird automatisch vom Skript erstellt. Es enthält die Definitionen und Exporte der Umgebungsvariablen. Das obige versucht, die .agent-Datei als Quelle zu erstellen, und versucht dann, sie an ps(1)
den Agenten weiterzuleiten . Wenn es nicht funktioniert, startet es einen Agenten und erstellt eine neue Agentendatei. Sie können auch einfach ausführen ssh-add
und bei einem Fehler einen Agenten starten.
1. Und sogar lokal und fern sudo
mit der richtigen Pam-Erweiterung.