我无法在 WSL 上重新启动 ssh 服务

我无法在 WSL 上重新启动 ssh 服务
$ 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 连接。

相关内容