Ich habe einige Online-Dokumentationen zum Einrichten eines SSH-Agenten gelesen und befolgt , damit ich nicht jedes Mal ein Kennwort eingeben muss, wenn ich auf einem Remotecomputer ssh.
Mit Hilfe von ssh-agent muss ich dies jedoch ssh-add
jedes Mal tun, wenn ich die Shell neu starte. Der ssh-add
fordert mich dann auf, die Passphrase einzugeben, um den privaten Schlüssel zu entsperren.
Enter passphrase for key '/home/xx/.ssh/id_rsa':
Anstatt mein Kennwort für den Remote-Computer einzugeben, werde ich aufgefordert, das Kennwort für den privaten Schlüssel einzugeben. Es ist, als würde man aus einem Fegefeuer treten und sich danach in einer Hölle befinden. Es sieht so aus, als würde die id_rsa in einer Sitzung nur vorübergehend zum ssh-agent hinzugefügt , da ich mich jedes Mal anmelde und tippessh-add -l
. Ich bekomme:
The agent has no identities.
Darf ich fragen, wie dauerhaft der Schlüssel (id_rsa) in ssh-agent gespeichert wird? Vielen Dank
EDIT: das habe ich gemacht ssh-agent
. Ich habe den folgenden Block angehängt~/.bash_profile
SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "SSHAGENT" ]; then
eval `$SSHAGENT $SSHAGENTARGS`
trap "kill $SSH_AGENT_PID" 0
fi
ssh-add
einen Effekt hat, der länger anhält als das Shell-Fenster, in das Sie es eingegeben haben.ssh-agent
in die Post geschrieben.Antworten:
Ich habe Schlüsselbund installiert.
sudo apt-get install keychain
Wenn Sie bash ausführen, müssen Sie Ihrem .bash_profile einige Befehle hinzufügen. Wenn Sie kein .bash_profile haben, erstellen Sie einen in Ihrem Home-Ordner. Fügen Sie diese Zeilen hinzu:
Zu Beginn eines Arbeitstages werde ich mich einloggen. Wenn ich ein Terminal öffne, werde ich einmal zur Eingabe meiner Passphrase aufgefordert. Bei allen anderen neuen Terminals und Verbindungen werde ich nicht erneut nach meiner Passphrase gefragt.
quelle
ssh-add
im Terminal?Was Sie suchen, ist weniger sicher, kann jedoch mithilfe der Authentifizierung mit öffentlichem Schlüssel ohne ssh-agent durchgeführt werden. Eine sicherere Option ist die Verwendung der Authentifizierung mit öffentlichem Schlüssel mit einer Passphrase, während die Kennwortauthentifizierung auf dem SSH-Server deaktiviert wird. Dies ist jedoch nicht das, wonach Sie gefragt haben. Anweisungen finden Sie unter dem Link unten in dieser Antwort, wenn Sie sich stattdessen dafür entscheiden.
Um ssh zu verwenden, ohne nach einer Passphrase gefragt zu werden, müssen Sie Ihr Schlüsselpaar generieren, während Sie das Passphrasenfeld leer lassen.
Um zu überprüfen, ob Sie bereits ein Schlüsselpaar generiert haben, suchen Sie in Ihrem Verzeichnis ~ / .ssh nach den Dateien id_rsa und id_rsa.pub. Wenn sie bereits vorhanden sind, können Sie sie löschen oder verschieben, um ein neues Schlüsselpaar zu erstellen.
Hinweis: Wenn Sie sie löschen, verlieren Sie den Zugriff auf alle von Ihnen verwendeten SSH-Server und die alten Schlüssel zur Authentifizierung, wenn die Kennwortauthentifizierung auf dem Server deaktiviert ist.
Führen Sie den folgenden Befehl aus, um ein neues Schlüsselpaar zu erstellen:
Übernehmen Sie den Standardspeicherort für die Schlüssel und lassen Sie die Passphrase leer.
Verwenden Sie den folgenden Befehl, um dem SSH-Server, zu dem Sie eine Verbindung herstellen möchten, Ihren öffentlichen Schlüssel zu geben:
Nachdem Sie diese Schritte ausgeführt haben, können Sie sich ohne Kennwort von dem von Ihnen verwendeten Computer beim Remoteserver anmelden.
Referenz: http://tombuntu.com/index.php/2008/02/20/public-key-authentication-for-ssh-made-easy/
quelle
Vor einiger Zeit wurde ich plötzlich nach einer Passphrase gefragt, um meinen SSH-Schlüssel zu entsperren
git push
. Es stellte sich heraus, dass es ausreichte, SSH-Schlüsselagenten (GNOME-Schlüsselring: SSH-Agent) zu Startanwendungen hinzuzufügen, um nicht mehr nach einer Passphrase gefragt zu werden (in meinem Fall - nur um das Kontrollkästchen zu aktivieren):quelle