通过SSH访问内网Windows服务器并启动WSL2

1.在Windows11上安装 OpenSSH服务器

以管理员身份打开 PowerShell 并运行:

Get-WindowsCapability -Online | Where-Object Name -like  'OpenSSH*'

会出现下图所示, 检查是否都为"Installed":

如果未安装,可以通过如下命令执行安装:

安装 OpenSSH 客户端:

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~ 0.0.1.0

安装OpenSSH服务端:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~ 0.0.1.0

假如下载速度慢,出现进度条卡住的情况, 可以直接前往官方发布页下载:

[Github] Releases · PowerShell/Win32-OpenSSH (github.com) (可能需要梯子)

找到最新发布的Release,下载OpenSSH-Win64版本:

2.配置SSH服务器

下载后,请先解压压缩包, 然后将得到的OpenSSH-Win64文件夹整个复制到C:\Program Files目录下:

然后在设置->编辑系统环境变量中的Path项中点击"新建":

输入: C:\Program Files\OpenSSH-Win64

点击"确定"进行保存.

 3.启动服务端SSH服务

管理员模式运行cmd或者powershell,依此输入:

net start sshd

等待加载完成后,接着输入:

sc config sshd start= auto

最终结果如图:


4.配置内网穿透

这里可以根据自己需求选择不同供应商, 这里就以网云穿为例.

当你申请到一条隧道后, 进入控制台界面,按照如图方式填写:

注意: 这里填写的端口为ssh默认的22端口,穿透协议填TCP

完成后会分配给你一个公网域名和外网端口,以及一个隧道令牌,请记下来:

5.启动服务端内网隧穿

[官方教程页面] 初次见面,注册\登录\开通隧道 · GitBook (xiaomy.net)

官方给出了两种开启方法,一种是下载官方客户端, 另一种是运行官方的java版本的jar包; 这里以java版本为例: 

首先确保服务端安装了java环境(jdk>1.8), 然后前往官网下载网云穿 (xiaomy.net), 下载后得到"xiaomy_nat.jar";

接着在同目录打开cmd,运行该jar包:

java -jar .\xiaomy_nat.jar

启动成功后, 输入你之前得到的隧道令牌,当出现此界面说明内网隧穿开启成功了;

注意: 这个页面最小化窗口即可,但是不要关闭, 否则将断开隧道连接.


6.外部通过SSH访问服务端

在另一台设备的上按照前面的第1,2点安装好SSH后, 在cmd中尝试通过ssh访问我们的服务端:

ssh username@domain -p port

注意: "username" 填写要登录的服务端的用户名;

          "domain"填写之前得到的公网域名;

            "port"填写之前得到的公网端口;

第一次登录会提示你保存密钥对,直接输入"yes";接着根据提示输入用户名对应的密码进行登录;

如果确定密码输入正确却提示无法成功登录,请检查前述步骤是否出错.


7.解决ssh远程访问无法打开wsl

当我们登陆成功后,会自动进入服务端的cmd终端,但当我们尝试打开wsl时却提示 "系统无法访问此文件", 此时我们需要更新wsl版本;

在服务端cmd中查看wsl版本:

wsl --version

对wsl进行更新:

wsl --update --pre-release

最终结果如图:

当我们再次尝试在ssh的终端中输入"wsl"时, 就能正常打开服务端的WSL了 !!

  • 30
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Windows Subsystem for Linux 2(WSL2)是Windows 10操作系统中的一个功能,它允许用户在Windows中运行Linux操作系统。对于那些熟悉Linux的开发人员来说,WSL2是一种非常方便的方式来使用他们所熟悉的命令行界面和工具。 在WSL2中,用户可以使用多种方法进行远程访问。其中,其中之一是通过ssh远程登录。 SSH(Secure Shell)是一种安全的网络协议,允许用户在不安全的网络上进行加密通信。通过ssh远程登录WSL2,用户可以像在本地一样使用WSL2,同时还可以利用Windows的GUI界面。 要使用ssh远程登录WSL2,用户需要先启用ssh服务器。在Windows PowerShell或命令提示符中,可以使用以下命令来启动ssh服务器: ``` sudo apt update sudo apt install openssh-server sudo service ssh start ``` 安装和启动过程完成后,可以使用ssh客户端连接到WSL2。在本地电脑上,打开一个终端窗口并输入以下命令: ``` ssh [username]@[IP address of WSL2] ``` 其中,[username]是WSL2中的用户名,[IP address of WSL2]是WSL2的IP地址。默认情况下,WSL2会动态分配IP地址,可以使用以下命令在WSL2中查找其IP地址: ``` ip addr show eth0 | grep inet | awk '{print $2}' | cut -d / -f 1 ``` 使用这种方法进行远程访问,需要确保WSL2Windows的防火墙设置正确。在Windows防火墙中,需要允许ssh流量通过。在WSL2中,需要允许ssh服务器通过WSL2的防火墙。可以使用以下命令配置WSL2防火墙: ``` sudo ufw allow ssh ``` 使用ssh远程登录WSL2时,还需要注意ssh客户端和服务端之间的证书问题。如果出现证书错误,需要检查证书是否正确配置。 总之,使用ssh远程登录WSL2是一种方便的方式,可让用户像在本地一样使用WSL2。通过配置WindowsWSL2的防火墙,并确保证书正确配置,用户可以安全、可靠地进行远程访问

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Runfreeone

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值