1. 固定ip
参考文章: Windows中wsl2为虚拟Linux子系统设置固定IP的方法_wsl2 固定ip-CSDN博客
2. 操作步骤
1. 安装并配置 SSH 服务器
首先,您需要在 WSL2 中安装和配置 OpenSSH 服务器。
-
更新软件包列表并安装 OpenSSH 服务器:
sudo apt update sudo apt install openssh-server
-
配置主机密钥
- 生成 RSA 主机密钥:
sudo ssh-keygen -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key -N ''
- 生成 ECDSA 主机密钥:
sudo ssh-keygen -t ecdsa -b 521 -f /etc/ssh/ssh_host_ecdsa_key -N ''
- 生成 ED25519 主机密钥:
sudo ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''
这些命令将生成缺失的密钥,并将其保存到相应的文件中。
- 确保正确的文件权限
主机密钥文件需要具有适当的权限。使用以下命令确保文件权限正确:
sudo chmod 600 /etc/ssh/ssh_host_rsa_key sudo chmod 600 /etc/ssh/ssh_host_ecdsa_key sudo chmod 600 /etc/ssh/ssh_host_ed25519_key
-
配置 SSH 服务器:
默认情况下,OpenSSH 服务器已经可以正常工作,但您可以根据需要编辑配置文件:
sudo vi /etc/ssh/sshd_config
确保以下行未被注释并设置正确:
Port 22 PermitRootLogin yes PasswordAuthentication yes HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_key
保存并退出文件,然后重新启动 SSH 服务器:
sudo service ssh start
2. 获取 WSL2 的 IP 地址
输出示例:
cookie@PC-20240130ZJAM:~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.31.64.2 netmask 255.255.255.0 broadcast 172.31.64.255
inet6 fe80::215:5dff:fe08:4ae8 prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:08:4a:e8 txqueuelen 1000 (Ethernet)
RX packets 377 bytes 60549 (60.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 168 bytes 21799 (21.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
IP 地址是 172.31.64.2
。
3. 配置 Windows 防火墙
为了允许通过 Xshell 连接到 WSL2,需要配置 Windows 防火墙允许端口 22 的连接。
-
打开 Windows 防火墙:
打开“控制面板” -> “系统和安全” -> “Windows Defender 防火墙” -> “高级设置”。
-
添加入站规则:
- 选择“入站规则”。
- 点击“新建规则”。
- 选择“端口”,然后点击“下一步”。
- 选择“TCP”,并在“特定本地端口”中输入“22”,然后点击“下一步”。
- 选择“允许连接”,然后点击“下一步”。
- 选择“域”、“专用”和“公用”,然后点击“下一步”。
- 给规则命名,如“允许SSH”,然后点击“完成”。
-
使用sell连接即可