禁用每个用户通过密码进行 SSH 登录?

use*_*369 5 ssh shared-hosting

我\xe2\x80\x99ve询问了一些网络托管提供商(Bluehost和Dreamhost),他们都说在共享托管帐户上他们无法禁用通过SSH使用密码登录。这意味着,即使我们设置了 SSH 密钥,在没有它们的情况下通过 Hosting\xe2\x80\x99s 密码登录也将始终处于启用状态,这几乎抵消了密钥的大部分优势。

\n\n

根据我在网上找到的信息,编辑/etc/ssh/sshd_config是通过密码禁用登录的方法,但由于它\xe2\x80\x99s共享托管,所以\xe2\x80\x99s不可能。

\n\n

尽管如此,他们从未声称它可以\xe2\x80\x99t完成(尽管我还没有\xe2\x80\x99t找到方法),只是他们不\xe2\x80\x99t支持它。有没有一种方法可以针对每个用户进行操作,以便我可以自己进行设置?如果不是,为什么不呢?SSH 工作方式的(技术/设计)限制是什么?

\n

Red*_*ick 3

[有没有办法]禁用每个用户通过密码进行 SSH 登录?

不,一般来说。

SSH 工作方式的(技术/设计)限制是什么?

SSH 协议设计或规范中的注释阻止了这种情况的发生。

这是 SSH 守护进程(或服务)中特定于实现的限制

Linux(等)平台上的常用sshd程序被编写为读取适用于该程序实例的所有用户的单个配置文件。

我相信可以编写一个 SSH 守护程序来在用户的主目录(例如)中查找补充配置文件。然而这还没有完成(可能需求不足)


有没有近似等价的东西?

您可以做的是将用户的登录密码设置为一些极长且完全随机的字符串。

可以使用 shell 设置包含无法使用攻击者所使用的 SSH 客户端输入的字符的密码。或者至少设置一个比他们可能尝试使用通常的基于字典的方法更长的密码。