To pytanie odpowiada na pytanie, jak uzyskać dostęp do plików Windows z Ubuntu Bash, ale jak mogę zrobić odwrotnie?
W szczególności muszę uzyskać dostęp do mojego klucza SSH z systemu Windows, który znajduje się w /home/mark/.ssh/id_rsa
Bash.
To pytanie odpowiada na pytanie, jak uzyskać dostęp do plików Windows z Ubuntu Bash, ale jak mogę zrobić odwrotnie?
W szczególności muszę uzyskać dostęp do mojego klucza SSH z systemu Windows, który znajduje się w /home/mark/.ssh/id_rsa
Bash.
Odpowiedzi:
PM dla wiersza poleceń systemu Windows tutaj:
Zaktualizowano październik 2019 r . : Aktualizacja odpowiedzi poniżej, aby odzwierciedlić nowo dodaną możliwość bezpośredniego dostępu do plików systemu Linux za pośrednictwem nowo zintegrowanego serwera P9 w Win10 1903 (i późniejszych) .
WAŻNE : Spelunkowanie w systemie plików Windows w celu uzyskania dostępu do plików Linuksa ma i będzie nieobsługiwane i MOCNIE zalecane! Aby zrozumieć, dlaczego, przeczytaj ten post
Jak więc uzyskiwać dostęp do plików systemu Linux za pomocą narzędzi systemu Windows (np. Notatnika, VS / VScode itp.)? Wcześniej nie można było tego zrobić, ale począwszy od systemu Windows 10 1903 (wreszcie!) Udostępniamy systemy plików twojej dystrybucji systemowi Windows za pośrednictwem serwera plików P9. Opublikowaliśmy także dogłębne wideo omawiające, jak to działa ! Podsumowanie tej nowej funkcji można również przeczytać w tym poście na blogu
Czekamy na informacje na temat korzystania z tej funkcji. Jeśli znajdziesz jakieś problemy, zgłoś problemy na repozytorium GitHub WSL tutaj: https://github.com/Microsoft/wsl .
explorer.exe .
, otwiera folder System32. @RichardTurner Gdzie są kroki ręczne?
Lokalizacja została faktycznie przeniesiona w najnowszej wersji do:
C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\
Zobacz ten problem GitHub z Microsoft / WSL # 2578
Jak wspomniano w powyższym numerze i komentarzach poniżej, nie zadzieraj z tymi plikami z systemu operacyjnego Windows.
Znalazłem go, przeszukując cały mój dysk C. Pliki są tutaj:
C:\Users\<username>\AppData\Local\lxss
np. mój klucz SSH jest tutaj:
C:\Users\Mark\AppData\Local\lxss\home\mark\.ssh\id_rsa
Tak, ale nie zaleca się manipulowania tym folderem z Eksploratora Windows. Jeśli chcesz kopiować, przenosić, edytować lub usuwać pliki z folderu lxss, musisz to zrobić w bash za pomocą narzędzi wiersza poleceń. Tylko pliki znajdujące się w katalogu / mnt / * są w rzeczywistości obsługiwane przez Eksploratora Windows.
W powershell
, użyj
cd ${env:appdata}\..\local\packages\canonical*\localstate\rootfs
następnie
ls
zwraca tę samą listę folderów co
ls /
w ramach bash na WSL.
Jak wspomniano powyżej, pliki [onoma] w katalogach WSL mają atrybuty, które zniknęłyby, gdyby manipulować nimi za pomocą eksploratora lub edytora tekstu uruchomionego w systemie Windows. Rozwiązaniem może być uruchomienie ssh-server w WSL (może być konieczna ponowna instalacja) nasłuchiwanie na localhost, a następnie zamontowanie systemu plików WSL jako napędu za pomocą, na przykład, win-sshfs lub po prostu użyć klienta Bitvise SSH do połączenia przez ssh i manipuluj plikami za pomocą okna sftp. Temat został częściowo omówiony tutaj: Jak mogę włączyć SSH do „Bash na Ubuntu na Windows 10”?
subst L: $env:LOCALAPPDATA\lxss
(dla PowerShell)
lub subst L: %LocalAppData%\lxss
(z cmd
)
Spowoduje to umieszczenie systemu plików root-podsystemu Linux /
na dysku L :.
Możesz także zmapować tylko katalog domowy lub po prostu walnąć %LocalAppData%\lxss
w okno eksploratora. Po prostu nie próbuj przeglądać L: \ mnt \ c, bo twój mózg może eksplodować.
W końcu udało mi się otworzyć eksploratora (i vscode) z właściwym poprawnym kontekstem folderu z poziomu WSL: https://github.com/andymule/wslwin
Na przykład, po zainstalowaniu tego, w Linuksie (WSL) wystarczy cd /home/mark/.ssh/
i napiszesz explorer
, a otworzy to Eksploratora Windows w tym miejscu, cokolwiek to jest.
EDYCJA: ta funkcja jest teraz oficjalnie obsługiwana w WSL i nie powinieneś już używać moich skryptów
Im na Windows 10 Creators Update. Używam SFTP NetDrive do montowania systemu plików WSL w systemie Windows jako dysku sieciowego.
Niektóre porty sshFS systemu Windows osiągają to samo.
Musisz uruchomić demona ssh poprzez „sudo service ssh start”
\\wsl$\Ubuntu\home\user\whatever
W eksploratorze lub w widżecie Uruchom (Cmd + R). Działa jak zwykły udział sieciowy i można bezpiecznie manipulować plikami.
Możesz także zamapować go na dysk lub folder, tak jak każdy inny udział sieciowy.
Uwaga: jest to nowa funkcja zaimplementowana w kompilacji systemu Windows 10 w wersji 18342