安装wsl
wsl --install -d <发行版>
ssh 连接 wsl2 本地环境的完整步骤
要在 windows 的 wsl2 环境中启用 ssh 服务,并允许本地或局域网设备连接,需完成以下步骤:
1. 安装openssh-server 和 net-tools
sudo apt update sudo apt install openssh-server -y sudo apt install net-tools
2. 配置 sshd
修改配置文件
sudo vim /etc/ssh/sshd_config
确保以下关键配置:
port 22 # 默认端口 listenaddress 0.0.0.0 # 允许所有 ip 连接 passwordauthentication yes # 启用密码登录 permitrootlogin yes # 允许 root 登录(按需调整)
3. 启动 ssh 服务
sudo service ssh start # 或手动启动:sudo /usr/sbin/sshd
验证服务状态:
ps -e | grep sshd 显示: 1689 ? 00:00:00 sshd
4. 免密登录
要实现 windows 免密 ssh 访问 wsl2,本质上是配置 ssh 公钥认证,步骤如下:
1. 在 windows 上生成 ssh 密钥对
- 在 powershell 或 git bash 中运行:
ssh-keygen -t ed25519 -c "wsl-ssh-key" # 推荐使用 ed25519 算法
- 默认保存路径:
c:\users\你的用户名\.ssh\id_ed25519
(私钥)和id_ed25519.pub
(公钥)。 - 不要设置密码(直接回车跳过),否则仍需交互输入。
2. 将windows上的公钥复制到 wsl2 的 authorized_keys
在 windows 查看公钥内容:
cat ~\.ssh\id_ed25519.pub
复制输出的内容(以 ssh-ed25519
开头的一行)。
在 wsl2 中粘贴到 ~/.ssh/authorized_keys
:
mkdir ~/.ssh echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys # 必须限制权限
5. 配置 windows ssh 客户端
确保私钥被自动加载
编辑 c:\users\你的用户名\.ssh\config
(没有则新建):
host wsl2 hostname localhost user 你的wsl2用户名 port 22 identityfile ~/.ssh/id_ed25519 identitiesonly yes
修复 wsl2 的 ~/.ssh
权限
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
测试连接:
ssh wsl2 # 直接使用配置的别名
若无提示输入密码,则配置成功!
成以上步骤后,即可通过 ssh 稳定访问 wsl2 环境。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论