Ich benutze Git Bash. Ich muss benutzen
eval `ssh-agent.exe`
ssh-add /my/ssh/location/
Jedes Mal, wenn ich eine neue Git-Bash starte.
Gibt es eine Möglichkeit, den SSH-Agenten dauerhaft einzustellen? Oder hat Windows eine gute Möglichkeit, die SSH-Schlüssel zu verwalten?
Ich bin ein neuer Typ, bitte gib mir ein detailliertes Tutorial, danke!
/my/ssh/location/
gleichbedeutend mit so etwas/c/Users/Foobar/.ssh/
?Antworten:
In einer git Bash - Sitzung können Sie einen Skript hinzufügen ,
~/.profile
oder~/.bashrc
( mit~
zu werden in der Regel festgelegt%USERPROFILE%
), um die Sitzung zu starten automatischssh-agent
. Wenn die Datei nicht vorhanden ist, erstellen Sie sie einfach.Dies beschreibt GitHub in " Arbeiten mit SSH-Schlüsselpassphrasen ".
Der Abschnitt " Automatischer Start von ssh-agent unter Git für Windows " in diesem Artikel enthält ein robustes Skript, das überprüft, ob der Agent ausgeführt wird oder nicht. Unten finden Sie nur einen Ausschnitt. Die vollständige Lösung finden Sie im GitHub-Artikel.
Andere Ressourcen:
" Ssh-agent dazu bringen, mit Git zu arbeiten, das von der Windows-Befehlsshell ausgeführt wird " hat ein ähnliches Skript, aber ich würde hauptsächlich auf den obigen GitHub-Artikel verweisen, der robuster und aktueller ist.
quelle
PS: Diese Anweisungen beziehen sich auf eine Bash-Shell, die im Windows 10 Linux-Subsystem geöffnet wurde, und erwähnen nicht die Verknüpfung von in Windows generierten SSH-Schlüsseln mit Bash unter Ubuntu unter Windows
1) Aktualisieren Sie Ihre .bashrc, indem Sie Folgendes hinzufügen
2) Führen Sie dann aus
$ source ~/.bashrc
, um Ihre Konfiguration neu zu laden.Die oben genannten Schritte wurden von https://github.com/abergs/ubuntuonwindows#2-start-an-bash-ssh-agent-on-launch ausgeführt
3) Erstellen Sie eine SSH-Konfigurationsdatei, falls nicht vorhanden. Verwenden Sie den folgenden Befehl, um einen neuen zu erstellen:
.ssh$ touch config
4) Fügen Sie Folgendes hinzu zu
~/.ssh/config
5) Fügen Sie Ihren Schlüssel mit dem Befehl zum SSH-Agenten hinzu,
$ ssh-add ~/.ssh/id_work_gmail
und dann sollten Sie in der Lage sein, mit ssh eine Verbindung zu Ihrem Github-Konto oder Remote-Host herzustellen. Zum Beispiel im Zusammenhang mit den obigen Codebeispielen:oder
Dieses Hinzufügen eines Schlüssels zum SSH-Agenten sollte nur einmal durchgeführt werden müssen.
6) Melden Sie sich jetzt von Ihrer Bash-Sitzung unter Windows Linux Subsystem ab, dh beenden Sie alle Bash-Konsolen erneut und starten Sie eine neue Konsole erneut. Versuchen Sie, SSH auf Ihrem Github-Host oder einem anderen Host durchzuführen, wie in der SSH-Konfigurationsdatei konfiguriert, und es sollte ohne zusätzliche Funktionen funktionieren Schritte.
Hinweis:
Wenn Sie konfrontiert sind,
Bad owner or permissions on ~/.ssh/config
aktualisieren Sie die Berechtigungen mit dem Befehlchmod 600 ~/.ssh/config
. Referenz: https://serverfault.com/a/253314/98910Damit die oben genannten Schritte funktionieren, benötigen Sie OpenSSH v 7.2 und höher . Wenn Sie ein älteres haben, können Sie es mithilfe der unter https://stackoverflow.com/a/41555393/936494 genannten Schritte aktualisieren
Die gleichen Details finden Sie in den wichtigsten Problemen mit dem SSH-Agenten des Windows 10 Linux-Subsystems
Vielen Dank.
quelle
>> "${SSH_ENV}"
? Sollte es nicht einfach so sein> "${SSH_ENV}"
? Ihre funktioniert natürlich, aber es endet nur mit einer langsam längeren und längeren~/.ssh/environment
Datei, und zwar (wie ich derzeit denke!?) Ohne Grund ... Vielen, vielen Dank! Ich denke, dieses Skript sollte nur in der Standardeinstellung.bashrc
für WSL Ubuntu enthalten sein, es ist so nützlich!Ich fand den reibungslosesten Weg, dies zu erreichen, die Verwendung von Pageant als SSH-Agent und Plink.
Für den Hostnamen, der auf Ihrer Fernbedienung verwendet wird, muss eine Putty-Sitzung konfiguriert sein.
Sie benötigen außerdem plink.exe, das von derselben Site wie putty heruntergeladen werden kann.
Und Sie brauchen Pageant, der mit geladenem Schlüssel läuft. Ich habe eine Verknüpfung zum Festzug in meinem Startordner, die meinen SSH-Schlüssel lädt, wenn ich mich anmelde.
Wenn Sie git-scm installieren, können Sie festlegen, dass anstelle von OpenSSH Schildkröte / Plink verwendet wird.
Der Nettoeffekt ist, dass Sie Git-Bash jederzeit öffnen und drücken / ziehen können, ohne nach Passphrasen gefragt zu werden.
Gleiches gilt für Kitt- und WinSCP-Sitzungen, wenn bei einem Festzug Ihr Schlüssel geladen ist. Es macht das Leben verdammt viel einfacher (und sicherer).
quelle
Da ich Putty in Windows nicht gerne als Problemumgehung verwende, habe ich ein sehr einfaches Dienstprogramm ssh-agent-wrapper erstellt . Es durchsucht Ihre .ssh-Ordner und fügt dem Agenten alle Ihre Schlüssel hinzu. Sie müssen es nur in den Windows-Startordner legen, damit es funktioniert.
Annahmen :
quelle
Ich konnte dies aufgrund der besten Antwort nicht zum Laufen bringen, wahrscheinlich weil ich so ein PC-Neuling bin und etwas Offensichtliches vermisse. Aber nur zu Ihrer Information, falls es jemandem hilft, der so herausgefordert ist wie ich, was ENDLICH funktioniert hat, war über einen der Links hier (in den Antworten angegeben). Dazu musste einfach Folgendes in meine eingefügt werden
.bash_profile
:Ich habe wahrscheinlich etwas Seltsames konfiguriert, war aber nicht erfolgreich, als ich es meinem
.profile
oder hinzufügte.bashrc
. Die andere echte Herausforderung, der ich begegnet bin, ist, dass ich kein Administrator auf diesem Computer bin und die Umgebungsvariablen nicht ändern kann, ohne dass sie von der IT genehmigt wurden. Dies ist also eine Lösung für diejenigen, die nicht darauf zugreifen können.Sie wissen, dass es funktioniert, wenn Sie beim Öffnen von git bash zur Eingabe Ihres SSH-Passworts aufgefordert werden. Halleluja, endlich hat etwas funktioniert.
quelle
Fügen Sie dies in Ihr ~ / .bashrc (oder eine Datei, die aus dem Quellcode stammt) ein, damit es nicht unnötig mehrmals pro Shell ausgeführt wird:
Und dann füge "AddKeysToAgent yes" zu ~ / .ssh / config hinzu:
ssh auf Ihren Server (oder git pull) normalerweise und Sie werden nur einmal pro Sitzung nach Passwort / Passphrase gefragt.
quelle
Erstellen Sie eine neue .bashrc- Datei in Ihrem ~ -Verzeichnis .
Dort können Sie Ihre gewünschten Befehle jedes Mal platzieren, wenn Sie die Bash starten
quelle
.bashrc
Datei einfach zu gestalten (z . B.echo test
und überprüfen Sie, ob sie geladen ist, wenn Sie Git Bash ausführen..bashrc
in Ihrem Benutzerordner zC:\Users\john
.Einfache Zwei-Zeichenfolgen-Lösung aus dieser Antwort :
Für sh , bash usw.:
Für csh , tcsh usw.:
quelle