ssh-keygen #
bash
# 生成 rsa 密钥对
ssh-keygen -t rsa -b 3072 -C "comments" -f ~/.ssh/id_rsa
# 密钥长度建议高于 3072 位。
# ed25519密钥对 256位
ssh-keygen -t ed25519 -C "comments" -f ~/.ssh/id_ed25519
# 设置私钥密码
ssh-keygen -p [-P old_password] [-N new_password] -f ~/.ssh/id_rsa
# 设置备注
ssh-keygen -c [-P password] -C "comments" -f ~/.ssh/id_rsa
# 要求私钥具有较新的 OpenSSH 密钥格式。
# 设置密钥格式
ssh-keygen -p -m PEM -f keyfile
# -m 选项可以是 RFC4716, PKCS8, PEM
# RFC4716 RFC4716/SSH2 public or private key (新格式,兼容性差)
# PKCS8 PEM PKCS8 public key
# PEM PEM public key (兼容性好)
# 读取ssh私钥文件,输出ssh公钥(解密私钥需要口令)
ssh-keygen -yf ~/.ssh/id_rsa
# 输出格式如下:
# ssh-rsa AAAAB3Nz...
# 输出公钥内容(可以使用 -m fomrat 指定输出格式,format 可选值有 RFC4716、PKCS8、PEM)
ssh-keygen -ef ~/.ssh/id_rsa
ssh-keygen -ef ~/.ssh/id_rsa.pub
# 输出格式如下:
# ---- BEGIN SSH2 PUBLIC KEY ----
# Comment: "3072-bit RSA, converted by root@ubuntu from OpenSSH"
# AAAAB3Nz...
# ...
# ---- END SSH2 PUBLIC KEY ----
# 查看公钥指纹
ssh-keygen [-E md5] -lf keyfile
# -E 选项可以是 sha256(默认), md5
# 查找信任的主机。(从 known_hosts 文件中查找指定主机)
ssh-keygen -F <host> [-f known_hosts_file] [-l]
# -l 若添加此选项,则将输出指纹,而不是原始数据
# 对信任的主机地址进行哈希。(不会修改已哈希过的主机)
ssh-keygen -H [-f known_hosts_file]
# 移除信任的主机
ssh-keygen -R <host> [-f known_hosts_file]