Generating the Key Revocation List (KRL)
The KRL is a compact binary format which allows revoking SSH signed certificates.
Create an empty revoking list:
❯ touch /etc/ssh/revoked_keysUpdate
/etc/ssh/sshd_configto include the new Key Revocation List:❯ RevokedKeys /etc/ssh/revoked_keysWhen necessary, revoke the first signed certificate:
❯ ssh-keygen -k -f revoked_keys -s sshuser.root.ca.pub foo-cert.pubWhen necessary, append more revoked certificates (using
-u):❯ ssh-keygen -k -f revoked_keys -s sshuser.root.ca.pub -u bar-cert.pubConfirm that revocation worked:
❯ ssh-keygen -Qf revoked_keys foo-cert.pubDistribute the updated
revoked_keysto every host (/etc/ssh/revoked_keys) usingrsync,scpor other orchestration utility.
NOTE: ssh-keygen should not require the signed public certificate to revoke it. Instead, using just the serial number should work. However, this is currently not working on OpenSSH 7.2p2 (Ubuntu).