Win10安装Ubuntu子系统且开启SSH

安装方法

在win10上面是可以开启ubuntu子系统的,安装好了之后,就可以使用ubuntu直接访问win系统里面的文件,这样对于要使用tar打包、或者简单对日志进行分析,就很方便了。如是,C盘是挂载在/mnt/c下,能直接访问的感觉真爽。

1
2
3
4
root@localhost:~# df -h |grep mnt
C: 81G 73G 8.2G 90% /mnt/c
D: 61G 41G 20G 68% /mnt/d
E: 98G 68G 31G 69% /mnt/e

Win10安装Ubuntu子系统的方法如下:

  • 在开发者选项里面开启开发人员模式
  • 启用或关闭windows功能位置,安装”适用于Linux的Windows子系统
  • 打开应用商店,下载ubuntu镜像即可

详细的攻略,请参考:Win10安装Ubuntu子系统超详细攻略

注意安装之后,其保存的位置是在%LOCALAPPDATA%\Packages\下,以CanonicalGroupLimited.Ubuntu18.04onWindows开头的目录名,尽量不要在上面安装大型软件,不然就把C盘占满了。

安装完ubuntu之后,是需要给root设置密码的。打开终端,输入命令sudo passwd,输入当前用户的密码,然后系统会提示输入新密码Enter new UNIX password:并再次确认Retype new UNIX password:,此时的密码就是root新密码。修改成功后,输入命令su root,再输入新的密码就ok了。

启动方法,一是在应用程序里面找到ubuntu进行运行,二是打开cmd,使用bash -c "pwd"运行,非常方便。

1
2
3
4
E:\hexo>bash -c "pwd"
/mnt/e/hexo

E:\hexo>

由于lxrun在win10 18.03之后的版本已经去掉了,所以现在是没有这个命令的。使用 winver 来查看win10的具体版本。取而代之的是ubuntu或者ubuntu1804,根据自己安装的系统而定。这个命令在应用商店的简介页面就有说明了。

开启ssh

由于ubuntu类似使用了一下cmd的界面,很难用,我们就需要开启SSH通过xshell等其他软件来登陆。

修改/etc/ssh/sshd_config配置文件,做以下调整:

1
2
3
4
Port = 22 # 默认是22端口,如果和windows端口冲突或你想换成其他的否则不用动
#ListenAddress 0.0.0.0 # 如果需要指定监听的IP则去除最左侧的井号,并配置对应IP,默认即监听PC所有IP
PermitRootLogin yes # 如果你需要用 root 直接登录系统则此处改为 yes
PasswordAuthentication yes # 将 no 改为 yes 表示使用帐号密码方式登录

修改完成之后,/etc/init.d/ssh start会出现以下报错

1
2
3
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key

服务是有启动了,但是使用xshell还是没有办法登陆,这是因为一般openssh服务正常安装后,主机会自动生成相应的主机密钥文件,但这里因未知原因并没有完成这一步动作,导致无法远程ssh连接。

解决方案,重新生成主机密钥文件:

使用ssh-keygen来重新生成,-t表示生成的密钥所使用的加密类型;-f项后接要生成的密钥文件名

1
2
3
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

完成之后,在/etc/ssh/目录下面,就可以看到有生成了这些文件,这样就可以很愉快地使用xshell登陆系统了。

1
2
3
4
5
6
7
8
9
10
11
root@localhost# ll /etc/ssh/*key*
-rw------- 1 root root 227 Sep 16 14:03 /etc/ssh/ssh_host_ecdsa_key
-rw-r--r-- 1 root root 181 Sep 16 14:03 /etc/ssh/ssh_host_ecdsa_key.pub
-rw------- 1 root root 411 Sep 16 14:04 /etc/ssh/ssh_host_ed25519_key
-rw-r--r-- 1 root root 101 Sep 16 14:04 /etc/ssh/ssh_host_ed25519_key.pub
-rw------- 1 root root 1675 Sep 16 14:03 /etc/ssh/ssh_host_rsa_key
-rw-r--r-- 1 root root 401 Sep 16 14:03 /etc/ssh/ssh_host_rsa_key.pub

# 在xshell登陆
Last login: Mon Sep 16 14:04:34 2019 from 127.0.0.1
root@localhost:~#

设置默认用户

默认情况下,win10安装完ubuntu之后,会普通用户的权限的。这对于使用上面来说,比较不方便。我们可以使用ubuntu1804进行修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
C:\>ubuntu1804 help
Launches or configures a Linux distribution.

Usage:
<no args>
Launches the user's default shell in the user's home directory.

install [--root]
Install the distribuiton and do not launch the shell when complete.
--root
Do not create a user account and leave the default user set to root.

run <command line>
Run the provided command line in the current working directory. If no
command line is provided, the default shell is launched.

config [setting [value]]
Configure settings for this distribution.
Settings:
--default-user <username>
Sets the default user to <username>. This must be an existing user.

help
Print usage information.

C:\>
C:\>ubuntu1804 config --default-user root

C:\>

使用ubuntu1804 config --default-user root完成之后,需要把原有的bash进程Kill掉,然后再打开就是root权限了。这时也就不需要密码就可以进行登陆了。

开机自启动

在设置好了默认账号为root之后,在ubuntu上面创建以下脚本:

1
2
3
root@localhost:~# cat /init.sh
#!/bin/bash
service ssh start

打开文件管理器,输入shell:startup打开这个目录,创建ubuntu.vbs文件,内容如下:

1
2
set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\bash.exe -c 'bash /init.sh'",0

这样就完美实现开机自启动了。

参考资料

启动sshd时,报“Could not load host key”错

开启win10下Ubuntu子系统的SSH服务

http://www.evobot.cn/post/5a8b1c0f.html

https://www.cnblogs.com/majiang/p/10742268.html

  • 本文作者: wumingx
  • 本文链接: https://www.wumingx.com/tools/win10-ubuntu-ssh.html
  • 本文主题: Win10安装Ubuntu子系统且开启SSH
  • 版权声明: 本站所有文章除特别声明外,转载请注明出处!如有侵权,请联系我删除。
0%