如何使用 FQDN 限制 SSH 主体文件中授权用户的范围?

如何使用 FQDN 限制 SSH 主体文件中授权用户的范围?

我已经使用 SSHAuthorizedPrincipalsFile功能很长一段时间了,它运行良好,但我最近发现可以使用主体文件中的“from=”关键字来限制用户的来源。

但是,问题是,一旦我添加该关键字,并且其 FQDN 与签署源主机密钥时用作主体的 FQDN 相匹配,我就无法再登录了。例如:

  1. 本地签名的主机密钥:

    ssh_host_ed25519_key-cert.pub:
            Type: ...
            Public key: ...
            Signing CA: ...
            Key ID: "hostname.example.com"
            Serial: 0
            Valid: from 2024-05-02T17:06:00 to 2025-05-01T17:07:48
            Principals: 
                    hostname.example.com
    
  2. 本地签名的用户密钥:

    id_ed25519-cert.pub:
            Type: ...
            Public key: ...
            Signing CA: ...
            Key ID: "hostname.example.com"
            Serial: 0
            Valid: from 2024-05-02T17:18:00 to 2025-05-01T17:19:47
            Principals: 
                    user
    
  3. 在远程主机上user_principals

    from="hostname.example.com" user
    
  4. 在远程主机上/etc/hosts

    <ipv6_address> hostname.example.com
    
  • 如果我user从本地主机通过 sshhostname.example.com进入远程主机,则会失败。
  • 如果我from="hostname.example.com"从远程主体文件中删除关键字,则登录成功。
  • 如果我from="hostname.example.com"用 替换关键字from="*.example.com",登录就会失败。
  • 如果我将from="hostname.example.com"关键字替换为from="<ipv6_address>" 实际<ipv6_address>的本地主机名 ipv6 地址,则登录成功。

是否有人真正能够实现这一点,from="FQDN"或者这是 SSH 服务器错误?

环境:

  • 本地主机:
    • Ubuntu 贵族
    • openssh 客户端:1:9.6p1-3ubuntu13
  • 远程主机:
    • Ubuntu 月球
    • openssh 服务器:1:9.0p1-1ubuntu8.7

相关内容