![我无法在 WSL 上重新启动 ssh 服务](https://linux22.com/image/1509770/%E6%88%91%E6%97%A0%E6%B3%95%E5%9C%A8%20WSL%20%E4%B8%8A%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%20ssh%20%E6%9C%8D%E5%8A%A1.png)
$ sudo service ssh --full-restart
* Stopping OpenBSD Secure Shell server sshd
[ OK ]
* Starting OpenBSD Secure Shell server sshd
sshd:../sysdeps/posix/getaddrinfo.c:2583:getaddrinfo:断言`(扩大({ const struct in6_addr *__a = (const struct in6_addr *) (sin6- >sin6_addr.__in6_u.__u6_addr32); __a->__in6_u.__u6_addr32[0] == 0 && __a->__in6_u.__u6_addr32[1] == 0 && __a->__in6_u.__u6_addr32[2] == __bswap_32 (0xffff); }))' 失败。已中止(核心转储)
答案1
您需要更改 /etc/ssh/sshd_config 文件中的几项内容。具体来说,
UsePrivilegeSeparation No
PermitRootLogin Yes (only if your using root)
PasswordAuthentication yes
权限分离可能是这里最重要的事情。默认情况下,它是打开的,这会导致 OpenSSH 因某种原因失败。
您可以尝试此命令重新启动 ssh 服务吗?
$ /etc/init.d/ssh restart
编辑:您还需要向 Windows 防火墙添加入站规则以允许您用于 Bash 的端口。转到 Windows 防火墙、高级安全,单击左侧窗格中的“入站规则”,然后在上面的菜单中选择“操作->新规则”。然后创建一条规则,允许在您想要的端口上进行传入 TCP 连接。