Ich habe Windows 10 mit Git installiert. Dieser Git verwendet mein C:/Users/MyName
Verzeichnis als HOME-Verzeichnis und das Verzeichnis darin /.ssh/
, um meine privaten SSH-Schlüssel zu finden.
Ich habe gerade "Bash on Ubuntu on Windows" aktiviert und eingerichtet (was für ein Mund voll!) Und Git darin auch installiert. Ich möchte, dass beide Gits denselben Schlüsselsatz verwenden, sodass es keine Rolle spielt, in welcher Umgebung ich auf diesem Computer arbeite. Meine Commits kommen immer von mir.
Das Problem ist, dass das HOME-Verzeichnis in bash anders ist ( /home/MyName
) und daher die Tasten nicht in der Ferne angezeigt werden ../../mnt/c/Users/MyName/.ssh
. Ich dachte, ich würde zu einem Gewinner werden, indem ich die Umgebungsvariable HOME mit ändere
export HOME=/c/mnt/Users/MyName
Dies hat das HOME-Verzeichnis erfolgreich geändert, aber der Bash-Git sieht immer noch nicht die in dem Verzeichnis enthaltenen Schlüssel ./.ssh
.
Ich bin nicht sicher, ob dies A) ist, weil bash git Schlüssel in einem anderen Dateiformat erwartet? (aktuelle sind id_rsa
und id_rsa.pub
) B) Bash Git ignoriert die geänderte HOME Variable? Oder vielleicht beides.
Ich bin mir auch nicht sicher, ob C) eine willkürliche Änderung der HOME-Variablen wie diese im Allgemeinen eine gute Idee für andere Programme ist, die darauf verweisen könnten?
.ssh
existiert schon bei/home/MyName
... kann man symlink files? so dass ich tun würdeln -s /mnt/c/Users/MyName/.ssh/id_rsa /.ssh/id_rsa
? (Neu bei Symlinking auch!).ssh
Verzeichnis mit Symlinks verknüpfen .Antworten:
Als Telastyn kommentierte, fügte ich Symlinks in WSLs
~/.ssh/
zu id_rsa und id_rsa.pub hinzu:Unter Verwendung der gleichen Technik, um stattdessen das Symlink-Verzeichnis wie von Tripleee vorgeschlagen zu verknüpfen, hatte ich Probleme, bis ich sah, dass die abschließenden Schrägstriche, die ich in der verwendete
ln
Befehl verwendete (von der Verwendung der Tabulatortaste zum Ausfüllen des Verzeichnisnamens durch Bash), ein Problem waren. Anstatt das oben genannte zu tun, könnte man also besser tun:Die Datei known_hosts unterscheidet sich geringfügig zwischen meiner Verwendung (Git in Powershell mit dem SSH-Agenten) in Windows und der SSH-Verwendung in WSL, wobei Hostname und IP in der Windows-Version nicht gehasht werden. Laut der Manpage für ssh-config gibt es ein Flag zum Deaktivieren dieses Hashings, was bedeutet, dass SSH die Datei ohne das bisherige Hashing verstehen würde.
Diese letztere Methode bedeutet, dass die für SSH verwendeten Details zwischen den beiden verschiedenen Umgebungen genau gleich sind.
Vielen Dank an Matěj Kříž für den Hinweis auf eine kleine, aber wichtige fehlende Figur!
quelle
> ln -s /mnt/c/Users/MyName/.ssh/id_rsa ~/.ssh/id_rsa
"~" hinzugefügt werden. Nee?private keys
frombash on windows
if ones zu verwendens link
. Andernfalls wird einessh agent
schlechte Berechtigung für private Schlüsseldateien beanstandet. Da die Dateien aus dem Fenster gemountet wurden, können ihre Berechtigungen nicht geändert werden.Basierend auf dem neuen Build "Insider Build 17063" funktionieren die Berechtigungen für Dateien jetzt anders. Kurz gesagt, müssen Sie Folgendes tun:
Dadurch funktionieren die Berechtigungen für Ihren SSH-Ordner nach Bedarf. Dann verarbeitet wie OP in seiner Antwort vorschlägt.
Relevante Links:
https://github.com/Microsoft/WSL/issues/3181 https://blogs.msdn.microsoft.com/commandline/2018/01/12/chmod-chown-wsl-improvements/
BEARBEITEN
Ich komme auf diese Frage zurück, weil ich herausfinde, dass dies nur eine vorübergehende Lösung ist (ja, ich bin dumm). Bei jedem Neustart (Abmelden) Ihrer WSL müssen Sie diese Befehle erneut ausführen.
Die Lösung, die jetzt für mich funktioniert, besteht darin, die Konfigurationsdatei
/etc/wsl.conf
in meinem wsl-Ubuntu zu bearbeiten (zu erstellen) und die folgenden Schritte auszuführen und dann neu zu starten, um die Mounts erneut auszuführen:Warum ich Metadaten hinzufüge:
Warum setzen Sie uid und gid:
Relevante Links:
https://docs.microsoft.com/en-us/windows/wsl/wsl-config https://blogs.msdn.microsoft.com/commandline/2018/02/07/automatically-configuring-wsl/ https: / /blogs.msdn.microsoft.com/commandline/2018/01/12/chmod-chown-wsl-improvements/
quelle