คำถามนี้ตอบวิธีการเข้าถึงไฟล์ Windows จาก Ubuntu Bash แต่ฉันจะทำตรงข้ามได้อย่างไร
โดยเฉพาะฉันต้องเข้าถึงคีย์ SSH ของฉันจาก Windows ซึ่งอยู่ที่/home/mark/.ssh/id_rsa
Bash
คำถามนี้ตอบวิธีการเข้าถึงไฟล์ Windows จาก Ubuntu Bash แต่ฉันจะทำตรงข้ามได้อย่างไร
โดยเฉพาะฉันต้องเข้าถึงคีย์ SSH ของฉันจาก Windows ซึ่งอยู่ที่/home/mark/.ssh/id_rsa
Bash
คำตอบ:
PM สำหรับ Windows Command-Line ที่นี่:
Updated ตุลาคม 2019 : การอัปเดตการตอบสนองด้านล่างเพื่อสะท้อนให้เห็นถึงความสามารถในการเพิ่มทุนให้แก่ไฟล์ลินุกซ์เข้าถึงโดยตรง distros' ผ่านทางเซิร์ฟเวอร์ P9 แบบบูรณาการใหม่ใน Win10 1903 (และต่อมา)
สิ่งสำคัญ : การแพร่กระจายผ่านระบบไฟล์ Windows เพื่อเข้าถึงไฟล์ Linux มีและจะยังไม่ได้รับการสนับสนุนและแนะนำอย่างต่อเนื่อง! เพื่อทำความเข้าใจว่าทำไมโปรดอ่านโพสต์นี้
ดังนั้นหนึ่งเข้าถึงไฟล์ลินุกซ์โดยใช้เครื่องมือ Windows (เช่น notepad, VS / VScode ฯลฯ ) อย่างไร ก่อนหน้านี้คุณทำไม่ได้ แต่เริ่มใน Windows 10 1903 พวกเรา (ในที่สุด!) เปิดเผยระบบไฟล์ของ distros ของคุณไปยัง Windows ผ่านทางเซิร์ฟเวอร์ไฟล์ P9 เราได้ตีพิมพ์วิดีโอเชิงลึกเกี่ยวกับวิธีการทำงานของมัน ! คุณสามารถอ่านบทสรุปของคุณสมบัติใหม่นี้ได้ในโพสต์บล็อกนี้
หวังว่าจะได้ทราบว่าคุณจะได้รับคุณลักษณะนี้ต่อไปอย่างไร หากคุณพบปัญหาใด ๆ โปรดปัญหาไฟล์บน GitHub WSL repo ที่นี่: https://github.com/Microsoft/wsl
explorer.exe .
จะเปิดโฟลเดอร์ System32 @RichardTurner ขั้นตอนที่ทำเองอยู่ที่ไหน
ตำแหน่งถูกย้ายในรีลีสล่าสุดไปที่:
C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\
ดูปัญหา GitHub นี้จากMicrosoft / WSL # 2578
ดังที่กล่าวไว้ในฉบับด้านบนและความคิดเห็นด้านล่างอย่ายุ่งกับไฟล์เหล่านี้จาก windows os
พบได้โดยค้นหาไดรฟ์ C ทั้งหมดของฉัน ไฟล์อยู่ที่นี่:
C:\Users\<username>\AppData\Local\lxss
เช่นรหัส SSH ของฉันอยู่ที่นี่:
C:\Users\Mark\AppData\Local\lxss\home\mark\.ssh\id_rsa
ใช่ แต่ไม่แนะนำให้จัดการโฟลเดอร์นั้นจาก windows explorer หากคุณต้องการคัดลอกย้ายแก้ไขหรือลบไฟล์จากโฟลเดอร์ lxss ที่คุณต้องทำในทุบตีด้วยเครื่องมือบรรทัดคำสั่ง เฉพาะไฟล์ที่อยู่บน / mnt / * เท่านั้นที่สามารถจัดการได้จริง ๆ จาก windows explorer
ในการpowershell
ใช้งาน
cd ${env:appdata}\..\local\packages\canonical*\localstate\rootfs
แล้วก็
ls
ส่งคืนรายการโฟลเดอร์เดียวกับ
ls /
ภายใน bash บน WSL
ดังที่ได้กล่าวไว้ข้างต้นโดยไฟล์ [onoma] ในไดเรกทอรี WSL มีคุณลักษณะที่จะหายไปหากมีการจัดการโดยใช้ explorer หรือ text editor ที่ทำงานภายใต้ระบบ Windows วิธีแก้ปัญหาอาจเริ่มต้น ssh-server ใน WSL (อาจจำเป็นต้องติดตั้งใหม่) ฟัง localhost แล้วติดตั้งระบบไฟล์ WSL เป็นไดรฟ์ที่ใช้ตัวอย่างเช่น win-sshfs หรือคุณสามารถใช้ Bitvise SSH ไคลเอ็นต์เพื่อเชื่อมต่อผ่าน ssh และจัดการไฟล์โดยหน้าต่าง sftp หัวข้อถูกกล่าวถึงบางส่วนที่นี่: ฉันจะ SSH เป็น“ Bash บน Ubuntu บน Windows 10” ได้อย่างไร?
subst L: $env:LOCALAPPDATA\lxss
(สำหรับ PowerShell)
หรือsubst L: %LocalAppData%\lxss
(จากcmd
)
สิ่งนี้ทำให้ระบบไฟล์รูท/
ของระบบย่อย Linux ของคุณบนไดรฟ์L:
นอกจากนี้คุณยังสามารถแมปไดเรกทอรีบ้านของคุณหรือเพียงแค่ตี%LocalAppData%\lxss
ในหน้าต่างสำรวจ อย่าลองเรียกดู L: \ mnt \ c ไม่เช่นนั้นสมองของคุณอาจระเบิด
ในที่สุดฉันก็หาวิธีเปิด explorer (และ vscode) ด้วยบริบทโฟลเดอร์ที่ถูกต้องจริงจากภายใน WSL: https://github.com/andymule/wslwin
ตัวอย่างเช่นหลังจากที่คุณติดตั้งสิ่งนี้ใน linux (WSL) คุณจะcd /home/mark/.ssh/
พิมพ์explorer
และมันจะเปิด windows explorer ที่ตำแหน่งนั้นไม่ว่ามันจะเป็นอะไร
แก้ไข: ฟีเจอร์นี้ได้รับการสนับสนุนอย่างเป็นทางการใน WSL แล้วและคุณไม่ควรใช้สคริปต์ของฉันอีกต่อไป
ฉันอยู่ในการปรับปรุงของ Windows 10 ผู้สร้าง ฉันใช้ SFTP NetDrive เพื่อติดตั้งระบบไฟล์ WSL ลงใน windows เช่นเดียวกับไดรฟ์เครือข่าย
มีพอร์ต Window sshFS บางตัวที่จะทำสิ่งเดียวกัน
คุณจะต้องเริ่มต้น ssh daemon ผ่าน "sudo service ssh start"
\\wsl$\Ubuntu\home\user\whatever
ใน explorer หรือวิดเจ็ต Run (Cmd + R) ทำงานเหมือนเครือข่ายปกติและปลอดภัยในการจัดการไฟล์
คุณสามารถแมปไปยังไดรฟ์หรือโฟลเดอร์เช่นเดียวกับเครือข่ายอื่น ๆ
หมายเหตุ:นี่เป็นคุณลักษณะใหม่ที่นำมาใช้ใน Windows 10 บิลด์ 18342