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了 !!