wsl开机启动ssh服务并开启32bit支持

在开机启动目录C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp加入vbs脚本

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

创建/home/init.sh文件

#!/bin/bash

# 自动输入sudo密码
sudo -S service ssh start << EOF
.
EOF

# 启用32bit支持
sudo service binfmt-support start

# 运行bash.exe不退出
while true
do
    sleep 600
done

开启wsl 32bit支持(通过qemu模拟, 参考https://github.com/Microsoft/WSL/issues/2468#issuecomment-374904520)

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386 zlib1g-dev:i386
sudo apt install qemu-user-static
sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' --mask '\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xf8\xff\xff\xff\xff\xff\xff\xff'
sudo service binfmt-support start
### 如何在 WSL2 中配置启动 SSH 服务 #### 安装 OpenSSH Server 为了在 WSL2 的 Ubuntu 环境中启用 SSH 服务,首先需要确认系统已安装 `openssh-server` 软件包。如果没有安装,则可以通过以下命令完成安装: ```bash sudo apt-get update && sudo apt-get install openssh-server -y ``` 此命令会更新软件源列表安装 OpenSSH 服务器[^2]。 --- #### 修改 SSH 配置文件 默认情况下,OpenSSH 使用 `/etc/ssh/sshd_config` 文件作为其主要配置文件。建议根据需求调整该文件中的设置。例如: - **允许 Root 登录**:如果希望使用 root 用户登录,请将 `PermitRootLogin` 设置为 `yes` 或 `prohibit-password`(推荐后者以增强安全性)。 - **禁用密码认证**:出于安全考虑,可关闭基于密码的身份验证将 `PasswordAuthentication` 设为 `no`,转而依赖密钥认证。 编辑配置文件的命令如下: ```bash sudo nano /etc/ssh/sshd_config ``` 保存更改后重启 SSH 服务以应用新配置: ```bash sudo service ssh restart ``` --- #### 启动与管理 SSH 服务 一旦安装完毕,可通过以下方式控制 SSH 服务的状态: - **启动 SSH 服务** ```bash sudo service ssh start ``` - **停止 SSH 服务** ```bash sudo service ssh stop ``` - **查看状态** ```bash sudo service ssh status ``` 注意,在每次重新启动 Windows 或 WSL2 实例时,默认不会自动启动 SSH 服务。因此需额外配置自启功能[^3]。 --- #### 配置 SSH启动 为了让 SSH 服务WSL2 启动而运行,可以创建一个脚本用于初始化环境。以下是具体步骤: 1. **创建 init 脚本** 在终端中执行以下命令来新建 `/etc/init.wsl` 文件,写入必要的启动逻辑: ```bash echo '#!/bin/sh' | sudo tee /etc/init.wsl echo '/etc/init.d/ssh $1' | sudo tee -a /etc/init.wsl ``` 2. **赋予脚本执行权限** 执行以下命令使上述脚本具有可执行属性: ```bash sudo chmod +x /etc/init.wsl ``` 3. **测试自启动效果** 关闭当前 WSL2 重新打开它,随后检查 SSH 是否正常工作: ```bash ps aux | grep sshd ``` 如果有任何异常情况发生,可能需要进一步排查日志或修复错误。 --- #### 测试远程连接 当本地 SSH 服务成功部署之后,可以从其他客户端尝试建立连接。假设目标机器 IP 地址为 `localhost`,端口号保持默认值 (即 22),则完整的指令形式应类似于这样: ```bash ssh username@localhost -p 22 ``` 当然也可以替换实际使用的域名或者动态分配地址以及指定不同的监听端口[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值