Versuchen Sie ssh-add, Sie müssen ssh-agentIhren privaten Schlüssel ausführen und halten
(Ok, wenn Sie auf die aktualisierte Frage antworten, führen Sie zuerst ssh-keygeneinen ö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-agentwie unten erklärt.)
Sie möchten beim ssh-agentAnmelden im Hintergrund ausgeführt werden. Sobald Sie sich angemeldet haben, sollten Sie ssh-addeinmal 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-agentnormalerweise 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-addoder sshbeide 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-addeinmal ausführen . Versuchen Sie es auszuführen ssh-addund 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 .profileund ich habe .bashrcQuelle .profile:
. .agent > /dev/null
ps -p $SSH_AGENT_PID | grep ssh-agent > /dev/null || {
ssh-agent > .agent
. .agent > /dev/null
}
Die .agentDatei 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-addund bei einem Fehler einen Agenten starten.
1. Und sogar lokal und fern sudomit der richtigen Pam-Erweiterung.