WSL开机自启动ssh服务

本文介绍如何配置WSL(Windows Subsystem for Linux),使其在Windows启动时自动运行,并设置SSH服务,以便通过Xshell等工具进行远程连接。过程包括创建启动脚本、设置WSL默认用户为root及调整SSH服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1. win+R键调出运行,输入shell:startup确定进入开始菜单启动程序目录(大致是C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup);

2. startWSL.vbs放到上述目录;

3. 打开wsl,将init.sh放到/目录,即/init.sh,记得要提前安装openssh-server(apt-get install openssh-server),应该默认安装好了;

4. 下次开机将自动启动wsl,并运行着ssh的进程,任务管理器中可以看到如下图内容。

    此时,可以使用xshell等连接localhost,可以使用密码或密钥连接,方式同linux,这里不予累述。

p

1. startWSL.vbs


 
  1. Set ws = WScript.CreateObject( "WScript.Shell")
  2. cmd = "C:\Windows\System32\bash.exe -c " "bash /init.sh" ""
  3. '运行命令不显示cmd窗口
  4. ws.Run cmd, 0, false
  5. Set ws = Nothing
  6. WScript.quit

 

2. init.sh


 
  1. #!/bin/bash
  2. pn=$(ps aux|grep -v grep|grep sshd|wc -l)
  3. `在这里插入代码片`
    [ -d /var/run/sshd ] || mkdir /var/run/sshd
  4. chmod 744 /var/run/sshd
  5. if [ "${pn}" != "0" ]; then
  6. pid=$(ps aux|grep -v grep|grep /usr/sbin/sshd|awk '{print $2}')
  7. kill $pid
  8. fi
  9. /usr/sbin/sshd -D

 需要默认root运行


 
  1. 在cmd 下:
  2. wslconfig / list # 查看wsl版本
  3. ubuntu1604 config -- default-user root
  4. Ubuntu 18.04
  5. 在cmd 目录下:
  6. ubuntu1804 config -- default-user root

配置文件github地址: https://github.com/yinshangqing/WSL

<think>好的,我需要帮助用户在WSL2的Ubuntu环境中安装和配置SSH客户端和服务端。首先,用户已经提到了几个相关的引用内容,我需要仔细看看这些引用里的信息,然后整合成一个清晰的步骤指南。 首先,根据引用[2]和[3],安装SSH服务端和客户端需要分开处理。用户可能已经知道客户端和服务端的区别,但需要明确步骤。引用[1]提到安装openssh-client的命令是sudo apt install openssh-client -y,而服务端则是openssh-server。不过用户现在是在WSL2的Ubuntu中操作,所以需要注意WSL的特殊性,比如是否需要配置自启动或者防火墙之类的。 接下来,我需要确定用户的需求是同时安装客户端和服务端。用户可能想要在WSL Ubuntu里作为服务端,让其他机器连接进来,或者用客户端连接其他服务器。根据引用[3],安装服务端后需要启动并设置开机自启,但WSL2的系统可能不支持systemctl,所以可能需要用其他方法启动服务,比如手动启动或者修改配置文件。 然后,检查SSH服务状态。引用[3]提到了systemctl status ssh,但在WSL中可能需要使用service命令,比如sudo service ssh status。如果服务没有自动启动,用户可能需要手动启动,并确保端口22开放。不过WSL2的网络和Windows主机共享,可能需要配置Windows防火墙允许端口22的入站连接,或者在WSL中设置端口转发。 另外,引用[3]还提到SSH默认使用22端口,但用户可能需要确认该端口是否被占用。在WSL中,可能还需要检查sshd_config的配置是否正确,比如允许密码认证或者密钥登录。 然后,生成相关问题的时候,需要考虑用户可能的后续疑问,比如如何连接到WSLSSH服务,或者如何配置密钥登录,以及如何处理WSL2的动态IP问题,可能需要设置静态IP或者使用Windows的端口转发。 最后,确保所有步骤都符合用户的需求,并且在WSL2环境下可行。可能需要提醒用户关于WSL2的网络配置,比如每次启动WSL2时的IP变化,可能需要使用Windows的localhost来连接,或者设置SSH到Windows的端口转发到WSL的22端口。</think>[用户可见层] 在WSL2的Ubuntu环境中安装配置SSH客户端/服务端步骤如下: ### 一、SSH客户端安装(连接其他服务器) 1. 更新软件源 ```bash sudo apt update ``` 2. 安装客户端组件 ```bash sudo apt install openssh-client -y # 引用[1] ``` ### 二、SSH服务端安装(允许他人连接当前WSL) 1. 安装服务端组件 ```bash sudo apt install openssh-server -y # 引用[2][3] ``` 2. 修改配置文件(可选) ```bash sudo nano /etc/ssh/sshd_config # 建议修改项: # Port 2222(避免与Windows主机SSH端口冲突) # PasswordAuthentication yes(启用密码验证) ``` 3. 启动SSH服务 ```bash sudo service ssh start # WSL环境下推荐使用service命令[3] ``` 4. 设置开机自启 ```bash sudo tee /etc/init.wsl <<EOF #!/bin/sh service ssh start EOF sudo chmod +x /etc/init.wsl # WSL特殊启动方案 ``` ### 三、连接验证 1. 查看服务状态 ```bash sudo service ssh status # 应显示"Active: active (running)"[3] ``` 2. 从Windows连接测试 ```powershell # 在Windows PowerShell中执行 ssh <WSL用户名>@localhost -p 22 # 默认使用22端口[3] ``` ### 四、注意事项 1. WSL2的IP地址每次重启会变化,建议通过`localhost`访问 2. 如果Windows防火墙拦截,需允许`TCP 22`端口入站 3. 密钥登录更安全,可用`ssh-keygen`生成密钥对
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值