折腾 Bash on Windows 开启 SSHD 并开机启动

回覆文章
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

折腾 Bash on Windows 开启 SSHD 并开机启动

文章 yehlu »

https://stray.love/itshou-zha/bash-on-w ... ji-qi-dong

安装 Bash on Windows
启动 Bash
安装常用的软件
设置 sshd
自动启动 ssh
其他
安装 Bash on Windows
在 控制面板\程序\程序和功能 启用或关闭 Windows 功能中勾选 适用于 Linux 的 Windows 子系统(Beta)
在设置中打开开发人员模式
重启电脑
powershell 中输入
lxrun /install /y
等待安装完成即可。
启动 Bash
可以使用开始菜单里的快捷方式 "Bash on Ubuntu on Windows",
也可以在运行中 输入 bash ~
安装常用的软件
sudo apt install subversion python3-pip && pip3 install you-get
设置 sshd
重装openssh
sudo apt-get remove openssh-server
sudo apt-get install openssh-server
修改 sshd 设置,添加以下配置到/etc/ssh/sshd_config
AllowUsers yourusername
PasswordAuthentication=yes
重启 sshd
sudo service ssh --full-restart
不出意外使用 ssh 客户端应该可以链接上 Bash on windows 了。
自动启动 ssh
一旦关掉 bash.exe 进程,ssh 就无法连接了。
解决这个问题分三个步骤:
添加启动项,让 bash.exe 随机启动
使用命令 sudo service ssh start 启动 sshd
因为 sudo service ssh start 命令需要输入密码不能自动化,所以需要 visudo 来免除输入密码的操作。
理清思路接下来记录一些过程:
使用 vbs 启动隐藏窗口开启 bash 和 运行 sudo service ssh start
set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\bash.exe",0
ws.run "C:\Windows\System32\bash.exe -c 'sudo /usr/sbin/service ssh start'",0
运行 sudo visudo,添加如下配置
toor ALL = (root) NOPASSWD: /usr/sbin/service
其中 toor 是我的用户名。
添加vbs文件到windows 启动项,将 vbs 文件放入到如下目录下。
%AppData%\Microsoft\Windows\Start Menu\Programs\Startup
重启,测试不出意外就可以连接上 ssh 了。
其他
错误 sshd: ../sysdeps/posix/getaddrinfo.c:2603: getaddrinfo: Assertion `IN6_IS_ADDR_V4MAPPED (sin6->sin6_addr.s6_addr32)' failed.
原因是 ipv6 的问题,修改sshd_config配置添加 ListenAddress 0.0.0.0 即可
sshd fail because getaddrinfo
回覆文章

回到「10」