我有一个名为“git”的专用系统帐户,由 gitlab/gitolite 管理。连接到此帐户的用户始终使用 SSH 密钥,“git”用户没有密码。如果用户在没有 SSH 密钥或配置错误的密钥的情况下进行连接,他们会因被要求输入密码而感到困惑。我正在寻找一种设置服务器的方法,以便在这种情况下它不会要求输入密码,而是显示某种用户友好的消息(“您的密钥丢失或无效”等)并断开连接。是否有可能,无论是在 sshd 配置中,还是以其他方式(也许是 PAM)?
请注意,我不是在询问如何设置公共/私人无密码连接。如何防止服务器为单个特定用户询问密码。
(我知道这样的设置会向潜在的攻击者揭示系统中存在用户“git”。但是由于“git”没有密码并且攻击者无论如何都可以轻松确定它的存在,我认为它只是一个低风险。)
您可以禁用该特定用户的密码登录。您无法提供特定消息,但至少不会提示他们输入密码。添加以下内容
/etc/ssh/sshd_config
: