如何真正关闭ssh服务器?


15

我通过systemctl disable ssh禁用ssh服务器,然后重新启动。重新启动后,我仍然可以通过ssh登录到远程服务器。我使用systemctl status ssh来检查服务器状态,它是不活动的。

$ systemctl -a | grep ssh
ssh.service                                               loaded    inactive dead      OpenBSD Secure Shell server
ssh@3-192.168.0.120: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

您可以将输出添加systemctl status ssh到您的问题吗?
Fiximan '19

这很像:● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: inactive (dead) since Tue 2019-07-09 23:25:16 CST; 1s ago
codexplorer

1
另外,您应该在防火墙上阻止端口22,以便即使SSH服务器正在以某种方式运行,也无法从远程访问它。
dr01

Answers:


26

systemd SSH套接字处于活动状态,并且SSH服务已激活套接字。您还需要禁用套接字:

systemctl disable --now ssh.socket

实际上,在我的Arch系统上,sshd守护程序仅在有新连接进入时才运行。在其他时候,sshd的唯一实例是分支处理这些连接的子进程。

另请参阅:


2
@spender是Lennart Poettering的官方博客,因此要获得“更好”的来源很难。不知道为什么您会收到Firefox的警告,但我不知道
Michael Snook

1
嗯,您可能会收到有关他的自签名证书的警告。
muru

1
@spender:的确,错误消息非常糟糕。应该告诉您不要向该站点提交私有数据,而不是说“如果您访问该站点,黑客可能会窃取您的[隐含:静止的]数据”。它读起来像是一条吓人的软件/ fake-AV消息,应培训用户忽略该消息。
R .. GitHub停止帮助ICE,

1
既然Lets Encrypt是如此易于使用,那么Poettering应该使用它而不是自签名证书。:/
muru

5
@muru给Poettering一点时间-将CA集成到init管理器中需要时间
。...– ivanivan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.