在 Ubuntu 16.04 上启用 sshd 时出错

在 Ubuntu 16.04 上启用 sshd 时出错

我刚刚在虚拟机上安装了 Ubuntu Server 16.04,然后安装了 openssh-server。当我尝试启用 sshd 时:

systemctl enable sshd.service

我收到此消息:

Failed to execute operation: Too many levels of symbolic links

有人知道这是什么吗?我是不是忘了做什么了?

答案1

这是因为服务名称实际上是ssh.service,而不是sshd.service

这样做:

systemctl enable ssh.service

解释

安装 时openssh-server,该服务会在 systemd 中自动启用。在启用过程中,还会为已启用的符号链接创建。如果您执行或sshd.service,此符号链接将消失。systemctl disable ssh.servicesystemctl disable sshd.service

您可以看到此处据称创建了符号链接:

root@node51 [~]# systemctl enable ssh.service
Synchronizing state of ssh.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable ssh
Created symlink from /etc/systemd/system/sshd.service to /lib/systemd/system/ssh.service.

由于 systemd 的设计,systemd 不会启用符号链接服务。
这是在 Red Hat Bugzilla 上讨论

相关内容