我怎样才能真正关闭 ssh 服务器?

我怎样才能真正关闭 ssh 服务器?

我使用 禁用了 ssh 服务器,systemctl disable ssh然后重新启动。重新启动后,我仍然可以通过 ssh 登录远程服务器。我使用systemctl status ssh检查服务器状态,发现服务器处于非活动状态。

$ systemctl -a | grep ssh
ssh.service                                               loaded    inactive dead      OpenBSD Secure Shell server
[email protected]:22-192.168.0.104:31079.service        loaded    active   running   OpenBSD Secure Shell server per-connection daemon (192.168.0.104:31079)
system-ssh.slice                                          loaded    active   active    system-ssh.slice
ssh.socket                                                loaded    active   listening OpenBSD Secure Shell server socket

我怎样才能真正关闭 ssh 服务器?

答案1

您可以stop使用 来启动服务systemctl,但您还需要启动disable它以及任何会导致它启动的东西。您可以使用 ,systemctl disable sshd这样sshd当您将来打开系统时就不会启动它。如果我没记错的话,即使在运行 之后,任何现有ssh连接仍将保持systemctl stop sshd。不应该建立任何新连接。

您可以看到,使用systemctl命令,您有sshd.servicesshd.socket。您需要使用 来停止和禁用这两者systemctl,可能首先是套接字,然后是服务。一个依赖于另一个,除非按正确的顺序执行,否则不会禁用。

$ sudo systemctl stop sshd.service sshd.socket
$ sudo systemctl disable sshd.socket
$ sudo systemctl disable sshd.service

正如所提到的,Ubuntuopenssh-server仅安装ssh.service,没有套接字。Debian Stretch 也是如此。似乎您已经偏离了默认设置,如果没有更多详细信息,很难确切知道发生了什么。

根据要求,删除提供sshd ( openssh-server) 的软件包将是一种更万无一失的方法。在完全禁用 之前,请考虑机器的物理位置等因素sshd

相关内容