如何设置sshd,以便从不要求特定用户的密码?

我有一个名为“git”的专用系统帐户,由gitlab / gitolitepipe理。 连接到这个帐户的用户总是使用SSH密钥,“git”用户没有密码。 如果用户没有使用SSH密钥或错误configuration的密钥连接,他们会被要求input密码而感到困惑。 我正在寻找一种方式来设置服务器,以便在这种情况下,它不要求input密码,而是显示某种用户友好的信息(“您的密钥丢失或无效”等)并断开连接。 这是可能的,无论是在sshdconfiguration,或以其他方式(PAM也许)?

请注意,我问如何设置公/私密密码连接。 只是如何防止服务器要求一个特定用户的密码。

(据我所知,这样的设置揭示了一个潜在的攻击者在系统中存在用户“git”,但由于“git”没有密码,攻击者可以很容易地确定它的存在,我认为这只是一个低风险。

您可以禁用该特定用户的密码login。 您不能提供特定的消息,但至less不会提示您input密码。 在/etc/ssh/sshd_config添加以下内容:

 Match user git PasswordAuthentication no ChallengeResponseAuthentication no