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