SSH服务器无法在我的WSL中​​启动

时间:2017-04-27 07:06:03

标签: windows-subsystem-for-linux

我最近使用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 

谢谢和最诚挚的问候。

3 个答案:

答案 0 :(得分:1)

我尝试了sudo service ssh start -4,它对我有用。

答案 1 :(得分:0)

尝试完全重新安装WSL:

  • lxrun / uninstall / full / y
  • lxrun / install

然后获得root shell:

  • sudo su

安装ssh:

  • apt-get install ssh

生成ssh主机密钥:

  • / usr / bin / ssh-keygen -A

并尝试启动ssh

  • service ssh start

答案 2 :(得分:0)

试试这个:

sudo service ssh --full-restart

这对我有用。