适用于 Linux 的 Windows 子系统(英语:Windows Subsystem for Linux,简称WSL)是一个为在Windows 10和Windows Server 2019上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。

vim /etc/ssh/sshd_config
修改如下四条配置项,不存在的需要添加

Port 8022 #默认的是22,但是被windows自己的ssh服务占用
UsePrivilegeSeparation no
PasswordAuthentication yes
ListenAddress 0.0.0.0

修改结果如图所示

在这里插入图片描述

重启ssh服务
service ssh restart
有时候可能查看服务显示已经起来,但就是无法登录,重启sshd服务也无法登录
提示 :

Protocol mismatch.
Connection closed by foreign host
在这里插入图片描述

原因:

WSL的网络,作为子系统的Ubuntu Linux和Windows主系统的IP是一样的。如果在Linux上搭建了Nginx服务器,那么在Windows上的浏览器上输入localhost是可以访问Nginx服务的。如果在Linux上运行netstat -nlp是不会看到任何端口服务的。在Linux上启用端口服务的时候,Windows系统会弹出窗口,询问是否允许相关端口访问。

WSL上的Ubuntu默认安装了openssh-server,也就是ssh服务的软件。但是,这个软件的 配置是不完整 的,如果启用服务,会报缺失几个密钥文件。为了解决这个问题,我们需要重新安装openssh-server:

sudo apt remove openssh-server
sudo apt install openssh-server
重启服务即可
sudo service ssh restart

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐