开启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