Questa domanda risponde come accedere ai file Windows da Ubuntu Bash, ma come posso fare il contrario?
In particolare, devo accedere alla mia chiave SSH da Windows che si trova in /home/mark/.ssh/id_rsa
Bash.
Questa domanda risponde come accedere ai file Windows da Ubuntu Bash, ma come posso fare il contrario?
In particolare, devo accedere alla mia chiave SSH da Windows che si trova in /home/mark/.ssh/id_rsa
Bash.
Risposte:
Riga di comando di PM per Windows qui:
Aggiornato ottobre 2019 : aggiornamento della risposta di seguito per riflettere la nuova possibilità aggiunta di accedere direttamente ai file Linux delle distribuzioni tramite il server P9 recentemente integrato in Win10 1903 (e versioni successive) .
IMPORTANTE : eseguire lo spelunking attraverso il filesystem di Windows per accedere ai file Linux è e continuerà a non essere supportato e FORTEMENTE sconsigliato! Per capire perché, leggi questo post
Quindi come si accede ai file Linux usando gli strumenti di Windows (ad esempio blocco note, VS / VScode, ecc.)? In precedenza, non potevi, ma a partire da Windows 10 1903 (finalmente!) Esponiamo i filesystem delle tue distribuzioni a Windows tramite un file server P9. Abbiamo anche pubblicato un video approfondito su come funziona ! Puoi anche leggere un riepilogo di questa nuova funzionalità in questo post del blog
Non vedo l'ora di sapere come andare avanti con questa funzione. In caso di problemi, si prega di inoltrare i problemi sul repository GitHub WSL qui: https://github.com/Microsoft/wsl .
explorer.exe .
apre la cartella System32. @RichardTurner Dove sono i passaggi manuali?
La posizione è stata effettivamente spostata nell'ultima versione in:
C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\
Vedi questo problema GitHub da Microsoft / WSL # 2578
Come accennato nel problema sopra e nei commenti qui sotto, non scherzare con questi file dal sistema operativo Windows.
L'ho trovato cercando in tutto il mio disco C. I file sono qui:
C:\Users\<username>\AppData\Local\lxss
ad esempio, la mia chiave SSH è qui:
C:\Users\Mark\AppData\Local\lxss\home\mark\.ssh\id_rsa
Sì, ma non è consigliabile manipolare quella cartella da Windows Explorer. Se vuoi copiare, spostare, modificare o cancellare i file dalla cartella lxss devi farlo all'interno di bash con gli strumenti da riga di comando. Solo i file che sono su / mnt / * sono veramente manipolabili da Windows Explorer.
In powershell
, utilizzare
cd ${env:appdata}\..\local\packages\canonical*\localstate\rootfs
poi
ls
restituisce lo stesso elenco di cartelle di
ls /
entro bash su WSL.
Come accennato in precedenza, i file [onoma] nelle directory WSL hanno attributi che sarebbero spariti se uno lo manipolasse utilizzando Explorer o l'editor di testo eseguito con il sistema Windows. La soluzione potrebbe essere quella di avviare ssh-server in WSL (potrebbe essere necessaria una reinstallazione) ascoltando localhost e quindi montando il filesystem WSL come unità usando, ad esempio, win-sshfs oppure puoi semplicemente usare il client Bitvise SSH per connetterti su ssh e manipolare i file dalla finestra sftp. L'argomento è stato parzialmente discusso qui: Come posso SSH in "Bash su Ubuntu su Windows 10"?
subst L: $env:LOCALAPPDATA\lxss
(per PowerShell)
o subst L: %LocalAppData%\lxss
(da cmd
)
Questo mette il tuo filesystem-sottosistema Linux-root /
sul tuo disco L : .
Puoi anche mappare solo la tua home directory o semplicemente colpire %LocalAppData%\lxss
in una finestra di Explorer. Non provare a sfogliare L: \ mnt \ c o il tuo cervello potrebbe esplodere.
Ho finalmente creato un modo per aprire explorer (e vscode) con il contesto della cartella corretto dall'interno di WSL: https://github.com/andymule/wslwin
Ad esempio, dopo aver installato questo, in Linux (WSL) dovresti solo cd /home/mark/.ssh/
digitare explorer
e aprire Windows Explorer in quella posizione, qualunque esso sia.
EDIT: questa funzione è ora ufficialmente supportata in WSL e non dovresti più usare i miei script
Sono su Windows 10 Creators Update. Uso SFTP NetDrive per montare il filesystem WSL su Windows come unità di rete.
Ci sono alcune porte sshFS di Windows che raggiungeranno la stessa cosa.
Dovrai avviare il demone ssh tramite "sudo service ssh start"
\\wsl$\Ubuntu\home\user\whatever
Nell'esploratore o nel widget Esegui (Cmd + R). Funziona come una normale condivisione di rete ed è sicuro manipolare i file.
Puoi anche mapparlo su un'unità o una cartella, proprio come qualsiasi altra condivisione di rete.
Nota: questa è una nuova funzionalità implementata in Windows 10 build 18342