• WSL优化之SSH远程登录篇


    Some of the most devastating things that happen to you will teach you the most.
    有些最打击你的事情反而教会你的东西越多。

    重装原有SSH

    sudo apt remove openssh-server
    sudo apt install openssh-server
    
    

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

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

    重新安装完还不行,因为WSL上的Ubuntu的SSH服务配置默认不允许密码方式登录,我们需要改配置:

    更改配置文件

    sudo vim /etc/ssh/sshd_config
    
    

    将以下配置复制到sshd_config配置文件

    Port 2222   #设置ssh的端口号, 由于22在windows中有别的用处, 尽量不修改系统的端口号
    PermitRootLogin yes   # 可以root远程登录
    PasswordAuthentication yes     # 允许密码验证登录
    AllowUsers sky # 远程登录时的用户名
    
    

    重启sshd服务

    sudo service ssh --full-restart
    
    

    此时,我们可以在Ubuntu的Bash下连接自己测试,也可以用Windows的PowerShell连接Ubuntu来测试,命令都是一样的

    测试连接

    ssh username@localhost:2222 	# username为安装WSL Ubuntu时输入的用户名
    

    如果要在其它机器上访问,需要查找本机IP,把localhost换成IP,那么同一子网(wifi、路由器)下的机器也可访问Ubuntu里的服务。
    如果在其他机器上连接不成功看是不是Win10本地防火墙的2222端口没有放行,放行端口方法

    防火墙->高级设置->入站规则->新建规则
    端口->下一步
    选择tcp 特定本地端口 2222
    允许连接, 默认都选上, 下一步填个名字 完成

    不出意外,就应该能连接成功了

    顺便提一下,如果是搭建Nginx服务就比SSH简单多了,执行下面命令安装后在浏览器访问localhost即可:

    sudo apt install nginx
    sudo service nginx start
    
    作者:王迎彬

    -------------------------------------------

    个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    Linux(debian)安装Redis教程
    Linux下Nginx学习笔记
    Linux常用命令
    MySQL代码片段
    MySql学习笔记
    漂亮的Web颜色
    Electron开发问题总结
    Git 教程
    Python基础
    【原创】servlet+spring+mybatis配置总结
  • 原文地址:https://www.cnblogs.com/yingbin/p/12828902.html
Copyright © 2020-2023  润新知