= ssh-Zertifikate mit einer CA signieren = 1. CA-Zertifikat erstellen: {{{ ssh-keygen -C CA -f ca -t ed25519 }}} 2. Host-Zertifikat erstellen: {{{ ssh-keygen -t ed25519 /etc/ssh/ssh_host_ed25519_key }}} 3. Host-Zertifikat signieren: {{{ export FQDN=xxx.lan.suhle.de export HOSTNAME=xxx ssh-keygen -s ca -h -n ${FQDN},${HOSTNAME} -I ${FQDN}-host-key /etc/ssh/ssh_host_ed25519_key }}} Hierdurch wird ein Zertifikat `/etc/ssh/ssh_host_ed25519_key-cert.pub` erstellt. 4. Das signierte Zertifikat als Host-Zertifikat nutzen: {{{ echo "HostCertificate /etc/ssh/ssh_host_ed25519_key-cert.pub" >> /etc/ssh/sshd_config }}} 5. Öffentliches Host-Zertifikat eines beliebigen Hosts in den CA-Ordner kopieren: {{{ scp host:/etc/ssh/ssh_host_ed25519_key.pub ./ }}} 6. Öffentliches Host-Zertifikat dieses Hosts signieren: {{{ export FQDN=host.lan.suhle.de export HOSTNAME=host ssh-keygen -s ca -I ${FQDN}-host-key -h -n ${FQDN},${HOSTNAME} ./ssh_host_ed25519_key.pub }}} 7. Das signierte Host-Zertifikat nutzen: {{{ ssh -l root host 'echo "HostCertificate /etc/ssh/ssh_host_ed25519_key-cert.pub" >> /etc/ssh/sshd_config' ssh -l root host 'systemctl restart sshd' }}} 8. Die CA systemweit bekannt machen: {{{ echo "@cert-authority *.lan.suhle.de $(cat ca.pub)" >> /etc/ssh/ssh_known_hosts }}} 9. Die CA im Host systemweit bekannt machen: {{{ scp /etc/ssh/ssh_known_hosts root@host:/etc/ssh/ssh_known_hosts }}} 10. User Zertifikat signieren: {{{ ssh-keygen -s ca -n -I id_ed25519.pub }}} 11. CA Public Key auf den Host übertragen: {{{ scp ./ca.pub host:/etc/ssh/ca.pub }}} 12. Dem sshd bekannt geben: {{{ ssh -l root host 'echo "TrustedUserCAKeys /etc/ssh/ca.pub" >> /etc/ssh/sshd_config' ssh -l root host 'systemctl restart sshd' }}} ---- KategorieRaspberry