Ich verwende git bash und richte ssh key mit ssh-keygen ein und frage mich jedes Mal, wenn ich etwas mit einem Repo git mache, nach der Passphrase für /c/Users/jankiewj/.ssh/id_rsa
. Gibt es eine Möglichkeit, diese Passphrase zu deaktivieren?
Ich verwende git bash und richte ssh key mit ssh-keygen ein und frage mich jedes Mal, wenn ich etwas mit einem Repo git mache, nach der Passphrase für /c/Users/jankiewj/.ssh/id_rsa
. Gibt es eine Möglichkeit, diese Passphrase zu deaktivieren?
Antworten:
Sie können dies in Git Bash ausführen:
eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa
Im zweiten Befehl wird nach einer Passphrase gefragt, und das war's. Bei jeder zusätzlichen Aktion, die Sie ausführen müssen (für die einmal eine Passphrase erforderlich war), werden Sie nicht nach der Passphrase gefragt (siehe Beispiel in der Abbildung unten):
.bashrc
so eingestellt , dass ich jedes Mal, wenn ich git bash öffne, die Eingabeaufforderung erhalte und für diese Sitzung bin ich bereit.
~/.bashrc
dann die Zeilen aus deinem Beitrag eintragen und speichern, das wars :) Danke!
.bashrc
, würde ich ein Skript verwenden und es entweder in .bash_profile
oder einfügen .profile
. Hier ist ein Ausschnitt des Hauptteils von mir .bash_profile
, der dieses Problem für alle lösen sollte, die noch nach einer Antwort suchen. Es ist ähnlich einer Antwort unten. Am Anfang des Skripts lade ich meine .bashrc
, die, falls nicht zutreffend, einfach weggelassen werden. Hinweis: Sie müssen die Verweise auf id_rsa
Ihren privaten SSH-Schlüssel und möglicherweise auf den Pfad ändern .
Eine etwas bessere und dauerhaftere Lösung besteht darin, den ssh-agent beim Öffnen der git bash unter Windows automatisch zu starten. Sie können das Folgende in Ihr .profile oder .bashrc kopieren / einfügen. Ich ziehe es vor, es auf das .profile zu setzen
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
unset env
Diese Lösung stammt aus diesem Github-Hilfeartikel
.bashrc
, wie unterscheidet sich Ihre Lösung? Unter Windows Bash ist jede Shell unabhängig, sodass der Agent niemals ausgeführt wird, wenn Sie die Shell ausführen.
.bashrc
. Aufforderung zur Eingabe der ssh-Passphrase nur beim ersten Mal. Ich habe mein Leben gerettet. Vielen Dank.
ssh-add -D
alle Schlüssel löschen.
Ich bin nicht sicher, ob ich es empfehlen möchte, aber wenn Sie den Schlüssel erstellen und aufgefordert werden, ein Passwort festzulegen, drücken Sie einfach die Eingabetaste und überspringen Sie das Passwort.
Schauen Sie sich diesen Link an, um zu erfahren, wie Sie ihn verwenden ssh-keygen
:
https://help.github.com/articles/working-with-ssh-key-passphrases/
Vielleicht ssh-agent
kann dir das irgendwie weiterhelfen. Aber nicht sicher, ohne Ihr aktuelles System zu kennen.
Geben Sie diesen git-Befehl an Ihrem Repos-Speicherort " ssh-keygen -p " ein. Dadurch werden Sie aufgefordert, den Speicherort der Schlüsseldatei, die alte Passphrase und die neue Passphrase (die leer gelassen werden kann, um keine Passphrase zu haben) einzugeben. Geben Sie nichts in das neue Passwort ein, um die Passphrase zu entfernen