大龄程序员
发布于

Windows (WSL)Linux子系统 SSH

Windows (WSL)Linux子系统 SSH

适用于Linux的Windows子系统
Windows Subsystem for Linux (WSL, Ubuntu) 安装教程

前言
WSL 的好处

Linux 兼容性
WSL 允许在 Windows 操作系统上运行 Linux 发行版 提供了与原生 Linux 相似的命令行工具和环境
对于开发人员 系统管理员和其他需要在 Windows 平台上访问 Linux 工具和软件的用户非常有用。

轻量级虚拟化
WSL 使用轻量级虚拟化技术 不是传统的虚拟机 这意味着它几乎不会对系统性能产生明显影响
使得在 Windows 上运行 Linux 不会导致系统变慢或需要大量系统资源

命令行工具
WSL 提供了大量的 Linux 命令行工具和实用程序 使开发人员能够在 Windows 上使用
这包括 bash shell grep sed awk 等工具 以及编程语言的解释器和编译器

与 Windows 集成
WSL 与 Windows 集成得非常好 轻松访问 Windows 文件系统中的文件
通过命令行在 Windows 和 Linux 之间传输文件
实现数据共享和互操作性

开发和测试环境
开发人员 在自己喜欢的 Linux 发行版中创建开发和测试环境
而无需离开 Windows 桌面
这对于跨平台应用程序的开发和测试非常有帮助

安全性
WSL 提供了一个隔离的环境
在其中运行 Linux 应用程序
不会影响 Windows 的安全性
这有助于隔离潜在的威胁

最重要的
可以运行任何你想玩的项目

一 开启Windows功能
Win + R 键组合 打开运行对话框
在运行对话框中
输入 appwiz.cpl 并按下回车键
这将打开“程序和功能”窗口。
左侧面板 单击“启用或关闭Windows功能”
打开​窗口 勾选【Hyper-V】和【适用于Linux的Windows子系统】后重启电脑

二 更新和设置WSL版本
在Windows菜单图标右键鼠标 打开【终端管理员】
输入以下代码设置WSL 2作为默认版本
运行以下代码更新WSL内核版本
不然会报错
wsl --update
运行以下代码设置WSL版本
wsl --set-default-version 2

三 安装Linux系统
安装 Linux 发行版:
在 PowerShell 中
用以下命令来安装所选的 Linux 发行版
以 Ubuntu 为例
wsl --install -d Ubuntu

如果安装其他系统
将 Ubuntu 替换为您要安装的 Linux 发行版的名称

安装完成后会自动打开Linux终端窗口
因为Ubuntu默认不允许设置root和admin用户名
所以要设置一个其他你喜欢的用户名
然后会要求你设置密码 输入密码的时候不会显示
设置完成后回车稍等一会就会自动登录到Linux系统
如果要用root账户
在登陆状态下输入sudo -i后输入你刚才设置的密码进行账户切换
然后apt update进行更新源后就可以安装你需要的依赖

四 开启SSH

adduser sshUser //添加一个新用户,名字叫Sirius
passwd sshUser //设置用户密码
gpasswd -a sshUser wheel //给予sudo权限, 当权限不够时,可以用sudo
lid -g wheel //查询所有带sudo权限的用户

1 安装SSH服务器
Linux 子系统中 打开终端 运行以下命令来安装 OpenSSH 服务器:

sudo apt update
sudo apt install openssh-server

2 修改配置端口为22 允许密码
运行以下命令进行修改配置文件内容
sudo vi /etc/ssh/sshd_config
找到下面的内容并去掉注释在前面的#号
其中把
PermitRootLogin prohibit-password
更改为
PermitRootLogin no
这是不允许用root登录

Port 22
PermitRootLogin no
PasswordAuthentication yes

保存并退出

3 重启SSH服务
运行
systemctl restart sshd

命令进行重启服务

4 终端测试连接
输入指令 格式为:ssh 用户名@域名/IP

ssh sshUser@0.0.0.0
ssh 127.0.0.1

5 确保SSH服务器会在系统启动时自动启动
运行以下命令来设置SSH服务器开机自启动
sudo systemctl enable ssh

6 配置永久解决方案

sudo systemctl restart sshd

将该命令保存为 service.sh 存在home目录下

# >>> service ssh restart >>>
# for Xshell connection
sudo service ssh --full-restart
# <<< service ssh restart <<<

配置好之后 下次开机 只需要在Linux子系统的默认终端运行sh service.sh命令后
关掉终端改用xshell登录即可

7 查看SSH监听端口
sudo ss -tuln | grep 22

8 SSH服务器状态
sudo systemctl status sshd

五 设置默认使用root登录系统(可选 不建议 不安全)
登录到 root 用户
在 WSL 中 用 sudo 命令来获取 root 权限
运行以下命令并输入当前用户的密码以获得 root 权限:
sudo -i

输入 root 用户的密码 您将切换到 root 用户。
要永久更改默认用户为 root 用户 编辑 WSL 配置文件
使用你喜欢的文本编辑器(例如 nano 或 vim)打开 /etc/wsl.conf 文件
如果文件不存在 请创建

sudo vi /etc/wsl.conf
打开 wsl.conf 文件后在原内容下面添加以下内容:

[user]
default=root

这会将默认用户设置为 root 用户。

保存并关闭文件。关闭当前终端窗口并重新打开一个终端窗口。

运行以下命令重新启动 WSL 以应用更改:
wsl --shutdown

六 删除刚开始创建的用户(可选)
使用 userdel 命令删除要删除的用户帐户
假设要删除的用户帐户名为 username 请运行以下命令
sudo userdel username
#删除用户账户
sudo rm -r /home/username
#删除用户文件夹

七 设置端口转发
为了能够从外部连接到你的WSL Linux子系统
需要确保系统具有公共IP地址 或者设置端口转发以将流量路由到WSL子系统的局域网IP地址
请检查你的网络配置 确保WSL子系统能够访问公共网络
且有一个可供外部访问的IP地址。

增加转发的命令
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22 connectaddress=127.0.0.1 connectport=22

删除转发的命令
netsh interface portproxy delete v4tov4 listenport=22 listenaddress=0.0.0.0

使用以下命令列出当前的端口转发规则
netsh interface portproxy show all

测试连接的命令
ssh username@ip -p 22

八 卸载Linux系统
wsl --unregister Ubuntu

浏览 (61)
点赞
收藏
评论
暂无数据