开启win10下Ubuntu子系统的SSH服务 并设置为开机启动

Win10中安装Ubuntu子系统后默认是没有开启SSH服务的,需要手动配置开启,

1。先通过 bash 进入子系统修改配置

vi /etc/ssh/sshd_config  备注 输入i 表示键入, 按键(ESC)外加 冒号(:WQ) 退出保存

如果文件不存在说明尚未安装,则执行安装

apt-get install openssh-server

2.继续修改配置,下面以密码登录的配置作说明:

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

 

如果PasswordAuthentication  为false, 上面的密码框不可用, 所以建议为true,如果PermitRootLogin  为false,那么用root 用户会提示拒绝密码,


主要配置以上几项即可 
3.然后启动 ssh 服务

service ssh start

如果提示 sshd error: could not load host key 则需要重新生成 key

dpkg-reconfigure openssh-server

4.查看服务状态

service ssh status
# * sshd is running  显示此内容则表示启动正常

5.passwd root # 设置下密码

不要忘了,还要配置防火墙开启端口才能被其他PC访问
打开 Win10 防火墙设置,(可以通过右下角有个向上的箭头点击盾牌快速进入面板)Windows Defender 安全中心,点击下方的高级设置,

最后效果如图:

 

 

2.关于开机启动我这里参考的是,我的Ubuntu 是18以上

https://www.cnblogs.com/vaynewang/p/10169134.html 

https://blog.csdn.net/toopoo/article/details/85733566

所以需要链接 rc-local.service 文件 然后创建 rc.local 文件并修改权限,大概是这样的:

ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service 
touch /etc/rc.local 
chmod 755 /etc/rc.local 

然后编辑rc.local 大概格式是这样的:

#!/bin/bash
service start ....
exit 0

注意 如果你的vbs文件 无法保存到 启动文件下(win10 会提示什么权限), 那么可以把vbs文件放到其他地方, 创建快捷方式,然后把快捷方式 放到 启动文件夹下


然而,WSL中并不支持通过rc.local 来实现开机启动。在这有个偏方,可以通过windows 的启动项来启动 rc.local中的脚本。

win+r shell:startup <- 进入启动目录

创建一个VBScript脚本wls_rclocal.vbs
写入内容 , 通过bash命令参数去执行rc.local
set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\bash.exe -c 'sudo /etc/rc.local'",0

注意 如果你的vbs文件 无法保存到 启动文件下(win10 会提示什么权限), 那么可以把vbs文件放到其他地方, 创建快捷方式,然后把快捷方式 放到 启动文件夹下


参考 文档:

https://blog.csdn.net/zhouzme/article/details/81087837

https://blog.csdn.net/u012206617/article/details/83026777

https://gist.github.com/dentechy/de2be62b55cfd234681921d5a8b6be11

posted on 2019-04-20 19:14  dz45693  阅读(12328)  评论(1编辑  收藏  举报

导航