DNST-KEYGEN(1)

πŸ“¦ version 0.2.0, in nixpkgs unstable

πŸ’– DNST-KEYGEN(1) πŸ’–

okay so real talk β€” this is dnst-keygen, and it lives in the dnst manual suite. it's the little key-making gremlin of the family and honestly? iconic. let's get into it πŸŽ€

✨ NAME ✨

dnst-keygen β€” generate a new key pair for a domain name πŸ”‘

🌸 SYNOPSIS 🌸

dnst keygen [OPTIONS] -a <ALGORITHM> <DOMAIN NAME>

πŸ¦‹ DESCRIPTION πŸ¦‹

dnst keygen makes a brand new key pair for whatever domain name you hand it. that's the whole vibe. ✨

and bestie, it doesn't just make the key β€” it leaves you a whole little gift bag of files:

  • K<name>+<alg>+<tag>.key β€” the public key file, and inside it? a DNSKEY RR in zone file format πŸ‘‘
  • K<name>+<alg>+<tag>.private β€” the private key file, holding the private key data fields in BIND's Private-key-format πŸ”’
  • K<name>+<alg>+<tag>.ds β€” the public key digest file, containing the DS RR in zone file format. heads up tho: this one only gets created for key signing keys, no ZSK crumbs here πŸ’…

so what are those little placeholders, you ask? let me break it down for you, i gotchu:

  • <name> is the fully-qualified owner name for the key β€” with a trailing dot, do not forget the dot, the dot is the moment 🫢
  • <alg> is the algorithm number of the key, zero-padded to 3 digits
  • <tag> is the 16-bit tag of the key, zero-padded to 5 digits

and once it's all done and dusted? it prints out K<name>+<alg>+<tag> to you. slay. that's your receipt 🧾

πŸŽ€ ARGUMENTS πŸŽ€

  • <DOMAIN NAME> β€” the owner name of the apex of the zone that the generated key is meant to sign. basically, "whose zone is this key for, bestie?" πŸ—ΊοΈ

πŸ’… OPTIONS πŸ’…

  • -a <NUMBER OR MNEMONIC> β€” use the given signing algorithm. this one is MANDATORY, no skipping, no "i'll do it later", it's required fr fr ⚠️

possible values are:

  • list β€” (no number) list available algorithms πŸ‘€
  • RSASHA256 β€” number 8 β€” RSA with SHA-256
  • ECDSAP256SHA256 β€” number 13 β€” ECDSA P-256 with SHA-256
  • ECDSAP384SHA384 β€” number 14 β€” ECDSA P-384 with SHA-384
  • ED25519 β€” number 15 β€” ED25519
  • ED448 β€” number 16 β€” ED448
  • -k β€” generate a key signing key (KSK) instead of a zone signing key (ZSK). the KSK/ZSK pipeline is real πŸ”₯
  • -b <BITS> β€” the length of the key, and only for RSA keys, iykyk. defaults to 2048 πŸ“
  • -r <DEVICE> β€” the randomness source to use for generation. defaults to /dev/urandom 🎲
  • -s β€” create symlinks .key and .private pointing at the generated keys. shortcuts are self care πŸ’«
  • -f β€” overwrite existing symlinks (this one's for use with -s, so bring a friend) πŸ”
  • -h, --help β€” print the help text. short summary with -h, and the long help with --help πŸ“–

πŸ‘‘ AUTHOR πŸ‘‘

NLnet Labs β€” the authors, the moment, the main characters 🫑

2024–2026, NLnet Labs β€” all the rights, all the years, periodt πŸ’œ


okay that's the whole page, you ate that reading bestie πŸ“ and real quick before you go β€” this lovely little manual is dnst version 0.2.0-alpha2, dated May 15, 2026, so like… keep that in mind. mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from