我使用 禁用了 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.service
和sshd.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
。