Cette question répond comment accéder aux fichiers Windows depuis Ubuntu Bash, mais comment puis-je faire le contraire?
Plus précisément, je dois accéder à ma clé SSH à partir de Windows, situé à /home/mark/.ssh/id_rsa
sous Bash.
La ligne de commande PM pour Windows ici:
Jusqu'à présent, l'accès aux fichiers Linux à partir de Windows était non pris en charge et vivement recommandé. Pour comprendre pourquoi, veuillez lire cet article: https://blogs.msdn.Microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/
Cependant, dans la version Windows 10 Insider de la semaine dernière, nous (enfin!) Avons exposé à Windows les systèmes de fichiers pour vos distributions Linux! Pour en savoir plus, veuillez lire cet article: https://blogs.msdn.Microsoft.com/commandline/2019/02/15/whats-new-for-wsl-in-windows-10-version-1903/
Nous avons hâte de savoir comment vous allez avec cette fonctionnalité. Si vous rencontrez des problèmes, veuillez signaler les problèmes sur le référentiel WSL GitHub ici: https://github.com/Microsoft/wsl .
L'emplacement a été déplacé dans la dernière version vers:
C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\
Voir ce numéro de GitHub dans Microsoft/WSL # 2578
Comme mentionné dans le numéro ci-dessus et dans les commentaires ci-dessous, ne jouez pas avec ces fichiers sous Windows.
Oui, mais il n'est pas recommandé de manipuler ce dossier à partir de l'explorateur Windows. Si vous voulez copier, déplacer, éditer ou effacer des fichiers du dossier lxss, vous devez le faire dans bash avec des outils en ligne de commande. Seuls les fichiers qui se trouvent sur/mnt/* sont vraiment manipulables à partir de l’explorateur Windows.
Je l'ai trouvé en cherchant dans tout mon lecteur C. Les fichiers sont ici:
C:\Users\<username>\AppData\Local\lxss
par exemple, ma clé SSH est ici:
C:\Users\Mark\AppData\Local\lxss\home\mark\.ssh\id_rsa
Comme il a été mentionné ci-dessus par [onoma], les fichiers des répertoires WSL ont des attributs qui seraient supprimés s'ils étaient manipulés à l'aide de l'explorateur ou d'un éditeur de texte exécuté sous Windows. La solution pourrait être de démarrer ssh-server dans WSL (une réinstallation peut être nécessaire) en écoutant localhost, puis en montant le système de fichiers WSL en tant que lecteur utilisant, par exemple, win-sshfs, ou simplement utiliser le client Bitvise SSH pour se connecter via ssh. et manipuler des fichiers par la fenêtre de sftp. Le sujet a été partiellement discuté ici: Comment puis-je SSH en «Bash sur Ubuntu sur Windows 10»?
subst L: $env:LOCALAPPDATA\lxss
(pour Powershell)
ou subst L: %LocalAppData%\lxss
(de cmd
)
Ceci place votre _/
système_fichiers_sous-système_système Linux sur votre lecteur L: .
Vous pouvez également mapper uniquement votre répertoire personnel ou simplement insérer %LocalAppData%\lxss
dans une fenêtre de l'Explorateur. N'essayez pas de naviguer sur L:\mnt\c, sinon votre cerveau pourrait exploser.
Dans powershell
, utilisez
cd ${env:appdata}\..\local\packages\canonical*\localstate\rootfs
puis
ls
renvoie la même liste de dossiers que
ls /
dans bash sur WSL.
J'ai enfin créé un moyen d'ouvrir Explorer (et vscode) avec le contexte de dossier correct dans le WSL: https://github.com/andymule/wslwin
Par exemple, après avoir installé ceci, sous linux (WSL), il vous suffirait de cd /home/mark/.ssh/
et de taper Explorer
pour ouvrir Windows Explorer à cet emplacement, quel qu’il soit.
EDIT: cette fonctionnalité est officiellement prise en charge dans WSL et vous ne devriez plus utiliser mes scripts.
Im sur la mise à jour de créateurs Windows 10. J'utilise SFTP NetDrive pour monter le système de fichiers WSL dans Windows en tant que lecteur réseau.
Certains ports Windows sshFS permettent d'atteindre le même objectif.
Vous aurez besoin de démarrer le démon ssh via "Sudo service ssh start"