我最近使用WSL(适用于Linux的Windows子系统),大部分工作正常,但这里有一个问题:我的SSH服务器不起作用:
root@X00194181:~# service ssh start
initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
* Starting OpenBSD Secure Shell server sshd
sshd: ../sysdeps/posix/getaddrinfo.c:2591: getaddrinfo: Assertion `(__extension__ ({ 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); }))' failed.
Aborted (core dumped)
可以从
中检索相关代码apt-get source eglibc6
该文件是eglibc-2.19 / sysdeps / posix / getaddrinfo.c,相关的断言代码是:
/* We have to convert the address. The socket is IPv6 and the request is for IPv4. */
struct sockaddr_in6 *sin6
= (struct sockaddr_in6 *) &results[i].source_addr;
struct sockaddr_in *sin
= (struct sockaddr_in *) &results[i].source_addr;
assert(IN6_IS_ADDR_V4MAPPED(sin6->sin6_addr.s6_addr32));//assertion failed here
谢谢和最诚挚的问候。
答案 0 :(得分:1)
我尝试了sudo service ssh start -4
,它对我有用。
答案 1 :(得分:0)
尝试完全重新安装WSL:
然后获得root shell:
安装ssh:
生成ssh主机密钥:
并尝试启动ssh
答案 2 :(得分:0)
试试这个:
sudo service ssh --full-restart
这对我有用。