sshd:允许某些公钥直接登录,其余的也需要密码

sshd:允许某些公钥直接登录,其余的也需要密码
  • 我有一台运行 sshd 的服务器。
  • 我有一台带有 ssh 密钥的安全机器。我想允许使用安全机器的密钥直接公钥登录服务器。
  • 我还有一台带有不同 ssh 密钥的笔记本电脑,如果丢失它可能会受到损害。我想在公钥身份验证之上要求密码,以防密钥被泄露。

这个配置可以实现修改sshd_config吗?

请注意,这个问题不是关于设置登录的公钥和密码。相反,我正在寻找一种根据公钥选择不同组合的方法。

答案1

一种方法是创建两个具有相同 UID 的用户,然后在sshd_config使用时Match User应用不同的登录策略。当然,authorized_keys为两个用户放置不同的文件。

额外的好处(虽然我没有验证):两个用户可以共享相同的主目录,并且authorized_keys可以在sshd_config相应的Match User部分中指定不同的主目录。

答案2

使用 MATCH 要求多种身份验证方法

不幸的是,它似乎不sshd_config支持使用给定的公钥作为匹配条件。但是,如果您的安全机器并且您的笔记本电脑始终使用单独的主机地址连接到服务器,因此“匹配”部分可用于要求给定用户使用多种身份验证方法。

将以下 Match 部分添加到sshd_config

Match Host laptop.host.ip.addr, User sshuser
    PasswordAuthentication yes 
    AuthenticationMethods publickey,password

每种身份验证方法都需要在sshd_config配置中显式启用。这可以在“匹配”部分中完成,以避免更改全局身份验证设置。

AuthenticationMethods选项是逗号分隔列表的列表。所以,AuthenticationMethods publickey,password不同于AuthenticationMethods publickey password.在前一个示例中,需要公钥和密码身份验证。在后一个示例中,需要公钥或密码身份验证。

相关内容