Windows10 开机自启动 Linux 子系统和 ssh 服务

Posted by baicai on December 13, 2018

win10 中的 Linux 子系统默认无法开机自启动,并且 ssh 服务也需要每次启动 bash 后手动启动,这里使用两个脚本来让 Linux 子系统在系统启动时也自行启动,并且将 ssh 服务打开。

win10 配置

  • 创建一个批处理脚本wslstartup.bat,写入如下内容:
  • 复制
powershell.exe -WindowStyle Hidden -c "bash /init.sh "
  • 这里表示隐藏窗口启动 Linux 子系统,并执行/init.shshell 脚本。
  • 打开运行,输入shell:startup回车,打开 windows 启动文件夹,将创建的批处理脚本移动进去。

Linux 子系统配置

  • 在根目录创建init.shshell 脚本,写入以下内容:
  • 复制
#!/bin/bash
pn=$(ps aux | grep -v grep |grep sshd|wc -l)
if [ "${pn}" != "0" ]; then
    pid=$(ps aux|grep -v grep|grep /usr/sbin/sshd|awk '{print $2}')
    echo "123456" | sudo -S kill $pid
fi
echo "123456" | sudo -S /usr/sbin/service ssh start
  • 其中echo的内容为默认登陆用户的登陆密码。
  • 更改脚本权限,和更改属主和属组为默认用户:
  • 复制
# chmod 755 /init.sh
# chown user:user /init.sh
  • 配置完成后,下次开机就可以自启动 Linux 子系统,并且将 ssh 服务启动,我们就可以在 xshell 等软件中登陆子系统了。