Windows的WSL子系统,自动开启sshd服务

这篇具有很好参考价值的文章主要介绍了Windows的WSL子系统,自动开启sshd服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

WSL和Linux系统

WSL(windows for linux)是由Microsoft开发的Linux兼容层,运行在Windows系统之上。而Linux系统则是独立的操作系统, 其有很多种大同小异的发行版本,常见的有Ubuntu, CentOS, Mint, Fedora等。主要差别在于:WSL无法使用Linux内核,而是使用微软开发的内核接口换,无法运行尤其是涉及底层系统调用的应用。相同点在于:系统上层应用和系统调度上两者基本一致的。毕竟已经从名字上表明了WSL的使用意图。
总之,wsl是windows子系统,windows可以控制wsl的服务。而且wsl的系统开机逻辑和Linux系统也是一致的。所以解决题目的思路有两个:
思路一,由windows去控制wsl自动启动sshd服务。
思路二,wsl自己设置开机自动启动sshd服务。
本文以WSL2的Ubuntu22.04为例进行讲解,其他操作系统命令大多大同小异,会顺带提一些重点,其他的就不多做赘述了。

方法一:修改windows启动wsl的启动脚本

  1. win+R键调出运行cmd,输入shell:startup,点击确定后进入开始菜单启动程序目录(大致是C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup);
  2. 进入到该目录创建一个StartWsl.vbs的文件(可以先创建一个名StartWsl的txt文件,然后在windows的powershell终端,同样进入到该目录,然后输入命令:mv ./StartWsl.txt ./StartWsl.vbs)。
  3. 编辑该文件
cmd="wsl -d Ubuntu-22.04 -u root -e /etc/init.d/ssh start"
CreateObject("Wscript.Shell").run cmd,vbhide
  1. 重启wsl服务。以管理者身份打开powershell输入以下命令:
wsl --shutdown

方法二:修改wsl伪Linux的启动脚本

Linux/类Unix系统的服务管理方式

在按思路二解决问题先要搞清楚Linux系统的服务管理方式,否则是没法修改开机配置以自动启动sshd服务的,因为不同的管理方式启动命令完全不一样那个。

  1. systemd
    代表系是Ubuntu16+等,systemd是现代Linux系统常用的服务管理工具,它管理系统服务、设备、机器状态、异常处理等。
    主要命令有:
  • systemctl:管理系统服务的启动、停止、重启、启用、禁用等
  • journalctl:查询系统日志
  • loginctl:管理用户登录会话
    配置文件主要为服务单元文件,以.service为后缀。
  1. SysVinit
    代表系统:CentOS等,SysVinit是较早的一种管理方式,主要使用/etc/init.d目录下的服务脚本来启动和停止服务。
    主要命令有:
  • service:启动、停止、重启服务
  • chkconfig:设置服务开机自启动
  1. Upstart
    代表系统:Gentoo/Chromiumos等,Ubuntu早期版本使用Upstart进行服务管理,它的配置文件为/etc/init目录下的.conf文件。
    主要命令有:
  • start/stop/restart 服务:管理服务
  • initctl:管理系统服务
  1. rc.d
    代表系统:Builldroot裁剪的Linux系统,多用于嵌入式。rc是最早的服务管理方式,主要使用/etc/rc.d/init.d目录下的脚本来管理服务。
    主要命令为服务脚本中的start、stop、restart等来启动和停止服务。

WSL2的Ubuntu22.04的服务管理方式默认是SysVinit,但是可切换为systemd。他们开启开机启动sshd服务的命令分别为:

sudo chkconfig sshd on #SysVinit
sudo systemctl enable sshd #systemd

由于systemd作为一种现代的服务管理方式,更加方便和快捷。rc.d和Upstart方式已被主流替代,SysVinit逐渐被替代。所以推荐选择systemd的管理方式,以后使用linux系统服务会方便很多。切换方式为在wsl的Linux系统的终端输入以下命令:

[ -f /etc/wsl.conf ] && sudo touch /etc/wsl.conf
sudo echo "[boot]" >>  /etc/wsl.conf
sudo echo "systemd=true" >> /etc/wsl.conf

然后需要重启wsl服务,以管理者身份打开powershell输入以下命令:

wsl --shutdown

然后重新代开wsl的终端即可。文章来源地址https://www.toymoban.com/news/detail-700325.html

修改开机脚本

  1. sytemd管理方式
    正常情况下切换到systemd后,不需要做任何事情,因为openssh-server安装后默认开机开启sshd服务。自动开启wsl后,测试命令 ps -aux | grep sshd | wc -l 的值不大于1,就说明sshd服务没有自动开起。大于1就说明成功了。但据网友反馈,wsl原装的openssh-server是有问题的,可能导致服务启动不正常。所以没成功的话请尝试卸载再重装openssh-server,以防万一我们再手动设置开机自动开启sshd服务:
sudo apt remove -purge openssh-server
sudo apt install openssh-server
sudo systemctl enable sshd
  1. SysVinit管理方式
    倘若不想切换管理方式为systemd,要开启开机自动启动sshd服务也是可以的:
sudo chkconfig sshd on

到了这里,关于Windows的WSL子系统,自动开启sshd服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows系统开启Linux子系统(Ubuntu)

    Linux是一种开源的操作系统,它拥有强大的功能和稳定的性能,广受开发者和用户的喜爱。但是,如果我们的电脑是Windows系统,要使用Linux系统,我们通常需要安装虚拟机,这样会占用很多的资源和空间,而且也不够方便。 其实,对于大多数用户来说,只需要开启Windows系统自

    2024年04月15日
    浏览(57)
  • Windows WSL子系统Ubuntu22.04安装Nvidia显卡驱动

    最近在研究AI,如果在Linux系统中部署的话需要重装系统,有些麻烦,又不想折腾。所以闲置很久没研究的WSL又拿起来研究了,当然部署ai还需要显卡驱动的支持,就必须先安装显卡驱动。 还没有安装过WSL的童鞋可以看我之前发布的这篇文章 windows11 安装 Linux子系统 WSL及ubunt

    2024年02月09日
    浏览(62)
  • windows子系统-wsl命令基础用法和无响应问题排查及解决方法

    微软帮助手册 手动安装步骤 设置用户名密码 疑难接单 wsl基础命令 博文资料 安装问题排查 若要更新到 WSL 2,需要运行 Windows 10。 对于 x64 系统:版本 1903 或更高版本,内部版本为 18362.1049 或更高版本。 对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。

    2024年02月11日
    浏览(39)
  • 手把手教学基于Windows11的wsl2使用ubuntu子系统

    打开“控制面板“-“程序“-“程序和功能“-“启用或关闭windows功能“(侧边栏)-勾选“hyper-v“、“适用于Linux的Windows子系统“、“虚拟机平台“ 控制面板:开始菜单中搜索打开即可 选择“程序”,进入后选择“程序和功能” 选择“启用或关闭windows功能” 勾选“Hyper-V“

    2024年01月20日
    浏览(52)
  • Windows 11部署WSL(Windows Subsystem for Linux——适用于Windows的Linux子系统)

    WSL(Windows Subsystem for Linux——适用于Windows的Linux子系统) Windows Subsystem for Linux(简称WSL)是一个在Windows 1011上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机

    2024年02月16日
    浏览(50)
  • Windows中wsl2为虚拟Linux子系统设置固定IP的方法

    ​ 在使用Windows的wsl时,经常需要Linux子系统和Windows宿主机之间通信。但wsl默认情况下,Linux子系统和Windows vEthernet虚拟适配器的IP每次启动后都不一样。给很多应用带来不便。在百度上很多解决方法,经过之次尝试,认为下面的方法简单有效。 我解决此问题时的系统环境:

    2023年04月09日
    浏览(43)
  • 【开发工具】适用于Windows的Linux子系统一一WSL安装使用教程

    一、简介 Windows Subsystem for Linux(简称WSL)是一个在Windows 1011上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上

    2024年02月05日
    浏览(60)
  • xshell连接Windows中通过wsl安装的linux子系统-Ubuntu 22.04

    Windows11下清理Docker Desktop与wsl的C盘空间占用(2023-10-12 20:50:41) 1.1、 启动或关闭Windows功能-适用于Linux的Windows子系统 1.2 WSL 官方文档 使用 WSL 在 Windows 上安装 Linux 补充:例外情况(使用 WSL 1 而不是 WSL 2) 1.3、在Microsoft store中搜索Ubuntu安装 在Microsoft store中搜索Ubuntu,找到带LTS结

    2024年02月15日
    浏览(60)
  • 【wsl-windows子系统】安装、启用、禁用以及同时支持docker-desktop和vmware方案

    如果你要用docker桌面版,很可能会用到wsl,如果没配置好,很可能wsl镜像会占用C盘很多空间。 前提用管理员身份执行 作者:zqifa 出处:https://www.cnblogs.com/zqifa/ 欢迎访问新博客地址:https://www.l1mn.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明

    2024年02月14日
    浏览(59)
  • Windows下linux 子系统 WSL2怎样使用usb串口(USBIPD-win4.0.0)

    https://github.com/dorssel/usbipd-win 直接下载最新版本的msi文件安装 windows查看usb设备 找到对应设备的编号,共享设备: 如 查看usb设备: 这时候就出现/dev/ttyUSB0啦

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包