主机密钥

主机密钥

我有五台 Linux 机器,每台机器上都有一个同名的服务帐户。它们彼此之间都有子网连接 ( 192.168.1.{1,2,3,4,5})。

我有一个脚本可以解析/etc/hosts正确的 IP 并将其添加到正确的主机名中。每台机器都需要能够ssh向其他所有机器启动无密码(15 个重要路由)。这一切都工作得很好,但是如果添加新机器或删除机器,管理工作量很大。我的问题是这样的:

给定一个完全连接的机器网络,如何同时管理每台机器上的连接?例如,使每台机器都能相互通信,而无需手动添加密钥和编辑主机

答案1

长话短说:

主机密钥

  1. 为主机密钥创建 CA 密钥:

    ssh-keygen -f host_ca
    
  2. 签署所有主机密钥并将其复制到服务器:

    ssh-keygen -s host_ca -I host_foo -h -n foo.bar.com -V +52w /etc/ssh/ssh_host_rsa_key.pub 
    
  3. 配置服务器 ( /etc/ssh/sshd_config) 以通告证书(除了主机密钥之外):

    HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub
    
  4. 配置客户端 ( /etc/ssh/ssh_known_hosts)(如果您搜索相互通信,也是您的服务器):

    @cert-authority *.bar.com ssh-rsa AAAAB3[...]== Comment
    

验证密钥:

  1. 为用户创建CA密钥:

     ssh-keygen -f user_ca
    
  2. 配置服务器接受此 CA 签名的密钥(同样在“/etc/ssh/sshd_config”中):

    TrustedUserCAKeys /etc/ssh/user_ca.pub
    
  3. 签署身份验证密钥:

     ssh-keygen -s user_ca -I user_thomas -n thomas,thomas2 -V +52w /path/to/id_rsa.pub
    

更多注释可参见哈贝茨或在手册页中sshd。它应该回答您所有的问题,但如果没有,请随时进一步询问。

相关内容