Skip to main content

Generate ssh keys user for authentication, password-less logins, and other things.

# To generate a key interactively:

# To generate an ed25519 key with 32 key derivation function rounds and save the key to a specific file:
ssh-keygen -t <ed25519> -a <32> -f <~/.ssh/filename>

# To generate an RSA 4096-bit key with email as a comment:
ssh-keygen -t <rsa> -b <4096> -C "<comment|email>"

# To remove the keys of a host from the known_hosts file (useful when a known host has a new key):
ssh-keygen -R <remote_host>

# To retrieve the fingerprint of a key in MD5 Hex:
ssh-keygen -l -E <md5> -f <~/.ssh/filename>

# To change the password of a key:
ssh-keygen -p -f <~/.ssh/filename>

# To change the type of the key format (for example from OPENSSH format to PEM), the file will be rewritten in-place:
ssh-keygen -p -N "" -m <PEM> -f <~/.ssh/OpenSSH_private_key>

# To retrieve public key from secret key:
ssh-keygen -y -f <~/.ssh/OpenSSH_private_key>

# ---

# To print the fingerprint of a public key:
ssh-keygen -lf /path/to/keyfile

# To print the Github-style (MD5) fingerprint of a public key:
ssh-keygen -E md5 -lf /path/to/keyfile