抛弃虚拟机!轻松安装 Windows 上的 Linux 子系统并配置 SSH

2018年7月31日 2 条评论 100 次阅读 1 人点赞

写在前面

以前,要想在 Windows 系统中获得 Linux 环境,最常见的方案应该是使用虚拟机,其次则是安装双系统。不过,与这两种方式相比,我们今天要介绍的 Windows 上的 Linux 子系统(WSL, Windows Subsystem for Linux)的安装配置就相当简单友好了,你不需要考虑复杂的驱动问题,也不需要因虚拟机的资源占用问题而烦恼。

在此我有必要说明,对于高级开发者来说,WSL 或许不是最好的选择。WSL 仍需依赖 Windows,难以直接与硬件沟通,而且也没有类似虚拟机的快照等技术。不过,对于普通 Linux 玩家来说,WSL 已经足够了。

接下来开始讲解怎么在 Windows 10 中启用 WSL,安装 Ubuntu 并且使用 SSH 客户端来连接它。

本文地址:https://www.jedbit.com/article/windows-subsystem-for-linux.html

准备工作

要安装 WSL,Windows 10 版本必须在 16215 以上。按照以下步骤检查你的系统版本:

打开开始菜单,【设置】-【系统】-【关于】,在【Windows 规格】一栏中的【操作系统版本】就是了,请确保它在 16125 以上!

 

安装 WSL

1. 进入【控制面板】-【程序】-【启用或关闭 Windows 功能】,勾选【适用于 Linux 的 Windows 子系统】并点击确定。

2. 重新启动电脑。

3. 打开【Microsoft Store】,搜索“Linux”,然后点击【获取这些应用】,如下图:

 

4. 选择你要安装的 Linux 发行版。如无特殊需求,推荐使用 Ubuntu。(点击此处打开 Ubuntu 的商店页面)

然后,像你安装其他应用一样,获取下载即可。

 

5. 至此,Ubuntu 子系统已经安装完成了。在开始菜单中点击 Ubuntu 图标即可打开 Linux 终端。

另外,在 cmd 中执行“ubuntu”或“bash”也可以打开 Ubuntu 系统。

 

6. 首次打开时会提示“Installing, this may take a few minutes...”,稍等片刻后,依照提示输入用户名密码确认密码就可以愉快地使用 Ubuntu 了。Have fun!

 

新手提示

在 Linux 中输入密码时,屏幕上是不会有回显的,(见上图,password 冒号后面是空的,你只需要输入密码然后按下回车即可。

 

配置并使用 SSH 连接

不得不说,Windows 控制台上运行 bash 好丑,而且字体颜色的显示效果非常糟糕(尤其是蓝色,根本看不见)。个人有两个推荐解决方法:1. 使用 cmder 等增强的命令行;2. 使用 SSH 连接本地 Linux

接下来要讲的就是第 2 种方法——配置 SSH。如果你不知道什么是 SSH,请自己学习SSH(安全外壳协议)_百度百科

本文地址:https://www.jedbit.com/article/windows-subsystem-for-linux.html

配置 SSH 服务端

1. 默认情况下,Ubuntu 已经自带了 OpenSSH-Server,因此可以直接启动 SSH 服务。在 bash 中执行以下命令:

$ sudo service ssh start

执行命令后,你可能会遇到下图中的错误,这是因为服务端缺少密钥文件

 

正常情况下,新安装的 OpenSSH-Server 应该是带有密钥的,此处我们本应手动生成缺少的四个密钥,但也可以不那么麻烦。采用重新安装 OpenSSH-Server 的方式也可以达到相同的效果,而且操作更简单。重新安装的 OpenSSH-Server 会自动生成密钥。

2. 重新安装 OpenSSH-Server:

$ sudo apt install --reinstall openssh-server

 

3. 修改 SSH 端口号(此步骤非必需)

SSH 的默认端口为 22,为了避免可能的冲突问题,建议将其修改为其他数字,如 2233 等。

用 vim 编辑器打开 SSH 的配置文件:

$ sudo vim /etc/ssh/sshd_config

在约第 5 行,将“Port”字段后的 22 修改为其它数字,我改成了 2233。

新手提示

vim 是 Linux 上一款非常强大的文本编辑器,建议每个 Linux 新手学习使用它。可以参考:Linux vi/vim | 菜鸟教程

 

4. 默认情况下,SSH Server 禁用了密码方式登陆,必须手动开启它。

在上一步打开的文件约 52 行的位置,将“PasswordAuthentication”字段的值由“no”改为“yes”(注意是小写的),保存。

 

5. 重启 SSH 服务:

$ sudo service ssh --full-restart

看到如下提示,则说明 SSH 服务端已经配置成功。

 

6. SSH 服务端配置成功。

 


用 SSH 客户端连接

1. 如果你没有 SSH 客户端,那么我强烈推荐你使用 MobaXterm(官方网站),可在官网免费下载。以下内容将以 MobaXterm 为例。

2. 进入 MobaXterm 主界面,依次点击【Session】-【SSH】。

3. 主机地址填写“127.0.0.1”(代表本机),勾选用户名并填入你刚刚安装 Ubuntu 时的用户名。Port 填写你刚才设置的端口号即可。

 

4. 点击 OK,SSH 连接自动启动,输入密码,成功!Have fun!

 

写在后面

如果 Linux 系统被你搞得十分混乱,想要重装怎么办?

在 WSL 方案中,卸载应用然后去 Windows Store 里重新下载即可!这种便捷的卸载安装方式,也是 WSL 的一大亮点。

 

Jed

一名狂热的技术爱好者。

文章评论(2)

  • Yzstr

    哈哈,我也就不明白了CMD或者PowerShell怎么都那么丑,不过我发现vscode带的shell窗口显示效果挺好的,再加上zsh的主题,凑合着用

    2018年8月7日
  • 区块链

    :biggrin: windows10,现在都用不到虚拟机了。~~ :redface:

    2018年8月1日
  • 提示:有人回复时会邮件通知您