vic*_*ico 19 ssh windows-subsystem-for-linux
我正在尝试在 WSL2 系统中运行的 Ubuntu 中启用 SSH:
sudo systemctl status ssh
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
Run Code Online (Sandbox Code Playgroud)
这是什么意思以及如何启用 ssh?
Not*_*1ds 19
更新说明#1: WSL2 现在支持 Systemd。有关如何启用它的详细信息,请参阅此答案。启用 Systemd 后,SSH 服务器现在可以自动启动sudo systemctl enable ssh
并使用 进行查询sudo systemctl status ssh
。
尝试在 WSL2 上使用 SSH 时需要注意以下几点:
systemd
init 系统和基础设施,因此您需要依赖其他方法。Ubuntu 的 WSL 版本仍然init.d
为大多数服务提供旧式脚本。所以sudo service ssh start
(or restart
、 or status
、 orstop
等) 就是您将使用的。然而,除了启用 SSH 之外,您可能还希望能够从远程系统连接到它。WSL2 在具有经过 NAT 的虚拟网络接口的 VM 中运行,因此您将无法ssh
从网络上的任何其他计算机访问 WSL 实例,而无需付出额外的努力。不过, WSL确实提供自动本地主机转发,因此您可以ssh
从同一台计算机上的 Windows 或同一台计算机上的另一个 WSL 实例进行访问。
更新说明 #2: 以下方法不再适用于从 Microsoft Store 安装的最新 WSL 版本。WSL 的应用商店版本有一个已知限制,不允许从远程 SSH 会话启动它。现在将答案留在这里,但我很快就会用不同的(不幸的是,不太理想的解决方案)更新它。
如果您只需要从远程计算机终端访问 WSL,那么这里有一个更简单的解决方案:
ssh -t windows_user@windows_host wsl
。它只是连接到 Windows 主机,使用 分配一个伪终端-t
,并wsl
使用该伪终端运行命令。另一方面,如果您需要对 WSL 实例进行真正的SSH 访问,那么“通常的答案”仍然相当复杂。请参阅此 Github 评论和线程以及我对端口转发的常规选项的总结。
但这是“一般情况”。因为ssh
我们可以通过在 Windows 主机和WSL 实例中使用 ssh 服务器来使其变得更容易。请参阅我的答案中的“简短版本”,如果您在此答案中需要它们,请参阅(远)更多详细信息。
“更多详细信息”答案还包括远程启动 ssh 服务器的解决方案,因为它不会在 WSL 下启动时自动运行。
对于 WSL,您需要使用正确的语法:
\nsudo service ssh status\n
Run Code Online (Sandbox Code Playgroud)\n这将为您提供您正在寻找的内容:
\n\xe2\x97\x8f ssh.service - OpenBSD Secure Shell server\n Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)\n Active: active (running) since Sat 2021-05-22 19:54:00 JST; 3h 25min ago\n Docs: man:sshd(8)\n man:sshd_config(5)\n Process: 2129 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)\n Main PID: 2137 (sshd)\n Tasks: 1 (limit: 9127)\n Memory: 1.8M\n CGroup: /system.slice/ssh.service\n \xe2\x94\x94\xe2\x94\x802137 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups\n\n 5\xe6\x9c\x88 22 19:54:00 Carbon systemd[1]: Starting OpenBSD Secure Shell server...\n 5\xe6\x9c\x88 22 19:54:00 Carbon sshd[2137]: Server listening on 0.0.0.0 port 22.\n 5\xe6\x9c\x88 22 19:54:00 Carbon sshd[2137]: Server listening on :: port 22.\n 5\xe6\x9c\x88 22 19:54:00 Carbon systemd[1]: Started OpenBSD Secure Shell server.\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
125530 次 |
最近记录: |