我有五台 Linux 机器,每台机器上都有一个同名的服务帐户。它们彼此之间都有子网连接 ( 192.168.1.{1,2,3,4,5}
)。
我有一个脚本可以解析/etc/hosts
正确的 IP 并将其添加到正确的主机名中。每台机器都需要能够ssh
向其他所有机器启动无密码(15 个重要路由)。这一切都工作得很好,但是如果添加新机器或删除机器,管理工作量很大。我的问题是这样的:
给定一个完全连接的机器网络,如何同时管理每台机器上的连接?例如,使每台机器都能相互通信,而无需手动添加密钥和编辑主机
答案1
长话短说:
主机密钥
为主机密钥创建 CA 密钥:
ssh-keygen -f host_ca
签署所有主机密钥并将其复制到服务器:
ssh-keygen -s host_ca -I host_foo -h -n foo.bar.com -V +52w /etc/ssh/ssh_host_rsa_key.pub
配置服务器 (
/etc/ssh/sshd_config
) 以通告证书(除了主机密钥之外):HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub
配置客户端 (
/etc/ssh/ssh_known_hosts
)(如果您搜索相互通信,也是您的服务器):@cert-authority *.bar.com ssh-rsa AAAAB3[...]== Comment
验证密钥:
为用户创建CA密钥:
ssh-keygen -f user_ca
配置服务器接受此 CA 签名的密钥(同样在“/etc/ssh/sshd_config”中):
TrustedUserCAKeys /etc/ssh/user_ca.pub
签署身份验证密钥:
ssh-keygen -s user_ca -I user_thomas -n thomas,thomas2 -V +52w /path/to/id_rsa.pub