Điểm:0

Gắn thư mục từ WSL sang Ubuntu qua SSH với SSHFS

lá cờ my

Tôi đang cố gắn một thư mục nằm bên trong WSL vào máy Ubuntu 20.4 của mình bằng SSHFS nhưng tôi luôn nhận được thông báo rằng "Không có tệp hoặc thư mục như vậy." Tôi làm nó như thế nào?

Cách rõ ràng tôi đã cố gắn thư mục là như sau:

sshfs user@remotehost:"\wsl$\Ubuntu-20.04" /home/user/Remote/
Will avatar
lá cờ id
Bạn có thể chỉnh sửa bài đăng của mình để cho biết cách bạn đang cố gắn nó không?
Adam avatar
lá cờ my
@Will Tôi đã chỉnh sửa câu hỏi của mình. Cảm ơn vì đã góp ý.
Điểm:0
lá cờ vn

Câu trả lời ngắn:

Sử dụng máy chủ Windows làm máy chủ lưu trữ ssh để truy cập WSL.

Thêm chi tiết:

Có một vài cạm bẫy khi cố gắng truy cập WSL (đặc biệt là WSL2) thông qua ssh:

Đầu tiên, bạn có thể gặp phải thực tế là WSL2 chạy trong một môi trường ảo hóa, với một NAT'd vNIC. Điều này có nghĩa là các dịch vụ chạy trong WSL2 không thể truy cập trực tiếp từ các máy khác trên mạng.

WSL cung cấp chuyển tiếp máy chủ cục bộ, cho phép truy cập từ chính máy chủ Windows đến các dịch vụ đang chạy trong WSL2 (thông qua máy chủ cục bộ: số cổng). Nhưng điều này không mở rộng sang các máy khác trên mạng.

Bạn có thể thấy một chủ đề Github đầy đủ về điều này đây với liên kết trực tiếp đến nhận xét rằng nó tiêu biểu đề nghị để giải quyết điều này.

Nó bao gồm:

  • Đặt quy tắc tường lửa
  • Chuyển tiếp cổng từ Windows sang giao diện mạng ảo WSL2
  • Thách thức lớn nhất ở đây là địa chỉ của vNIC thay đổi mỗi khi WSL khởi động lại. Vì vậy, tập lệnh phải xóa các quy tắc cũ và tạo lại chúng mỗi lần khởi động lại.

Tuy nhiên, với bản chỉnh sửa được cập nhật của bạn, dường như bạn đang thử điều gì đó hơi khác, có vẻ như bạn đang cố truy cập chia sẻ giả WSL thông qua Windows, có thể thông qua ssh trên chính máy chủ Windows.

Thật không may, điều này cũng sẽ không hoạt động vì \wsl$\... bản thân nó là một hệ thống tập tin mạng (sử dụng giao thức 9P). Điều này có nghĩa là nó thực sự không hiện hữu trên chính máy chủ Windows khi được truy cập qua ssh.

Giải pháp ưa thích của tôi với ssh (và do đó sshfs) là sử dụng một máy chủ lưu trữ ssh. Điều này giải quyết vấn đề "thay đổi địa chỉ vNIC" và không yêu cầu bạn chạy tập lệnh mỗi lần khởi động Windows.

Để thiết lập điều này:

  • Cài đặt máy chủ Windows OpenSSH trên máy chủ Windows. Tôi sử dụng cổng 22 mặc định cho ssh "máy chủ", nhưng bạn không nhất thiết phải làm như vậy.
  • Cài đặt và định cấu hình SSH trong phiên bản WSL của bạn. Ở đây, bạn sẽ cần sử dụng một số cổng khác với số cổng dành cho máy chủ lưu trữ Windows. Vì lợi ích của ví dụ này, chúng tôi sẽ sử dụng cổng 8022. chỉnh sửa của bạn /etc/ssh/sshd_config để thay đổi cổng.
  • Tùy chọn, nhưng được khuyến nghị, hãy thiết lập cả phiên bản Windows OpenSSH và WSL bằng khóa công khai của bạn trong ../ssh/ủy quyền_keys (trên Windows OpenSSH, đây là dưới %userprofile%/.ssh danh mục. Tất nhiên, trong Linux/WSL, nó nằm trong ~/.ssh.

Bây giờ, vì (như đã đề cập trước đó), máy chủ Windows có thể truy cập các phiên bản WSL2 trên máy chủ cục bộ, bạn có thể sử dụng Windows SSH làm máy chủ lưu trữ cho các phiên SSH WSL2.

Giả sử rằng:

  • Máy tính Windows của bạn được đặt tên máy chủ cửa sổ (thay thế bất cứ điều gì nó thực sự được gọi là)
  • Bạn có Windows OpenSSH trên cổng 22
  • Bạn có máy chủ SSH WSL của mình trên cổng 8022

Sau đó, bạn có thể gắn hệ thống WSL của mình bằng cách sử dụng:

sshfs -o ssh_command='ssh -J windowshost' -p 8022 localhost:/ <mountpoint>

Phiên bản WSL là "localhost" vì đây là địa chỉ theo quan điểm của jumphost (máy chủ Windows).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.