【linux】SSH 连接 WSL2 本地环境的完整步骤
SSH 连接 WSL2 本地环境的完整步骤
要在 Windows 的 WSL2 环境中启用 SSH 服务,并允许本地或局域网设备连接,需完成以下步骤:
1. 安装 openssh-server
sudo apt update
sudo apt install openssh-server -y
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. 将公钥复制到 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 # 必须限制权限
3. 配置 Windows SSH 客户端
确保私钥被自动加载
编辑 C:\Users\你的用户名\.ssh\config
(没有则新建):
Host wsl2HostName localhostUser 你的WSL2用户名Port 22IdentityFile ~/.ssh/id_ed25519IdentitiesOnly yes
修复 WSL2 的 ~/.ssh
权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
测试连接:
ssh wsl2 # 直接使用配置的别名
若无提示输入密码,则配置成功!
成以上步骤后,即可通过 SSH 稳定访问 WSL2 环境。