ssh-keygen

ssh-keygen

生成密钥对

常用命令

生成密钥对

RSA

ℹ️
使用RSA算法生成公钥时,一般建议是 4096 位
shell
1
2
3
4
5
6
7
# 默认生成 2048 位 RSA 密钥
ssh-keygen

# 生成 4096 位 RSA 密钥
ssh-keygen -t rsa -b 4096

ssh-keygen -t rsa -b 4096 -C "[email protected]"

缺点是公钥(public key)非常长,例如:

RSA-4096
1
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCiYX186uvDSpBitOpzooopymM6ozjwhTLaDrG+jn3V1j8jH5MsyaXnssE35NDTShcvpidoeXpLihonASwVjSjWZas9U1xiF6WebOur7mKSmz2mnw8KpDteJhtRO1gVgUWZSjOy4Ba+Dr+6P5oWVlAlWbVuu3td1QMOgL3+SBEJ2Kj8LSzFlbO+hBiGoqBP7L1V1RjMXH/MSZM1dCowe7riGfdJv+y+lmD5RjYCwA0bReDhHfuZnTyAgFz3mhIQOQeKnnEo7yVpFQ03FUSIEnJ9uWsuE7blsneIhO6F1kWslNr9FAgXIr2V8TU/hMkevS6L4HZzRaVRptGwdHTRY2HeGs2G5X//Lc9+rssG4FW3ePp/VDsS97WsTltkbSf1vbhfwx/5iyDZHmvYPqwmlSNVIkjiANmbeip2SRgzuNAwWHH8lRlOvpAlcSybUyLNMY/dAUWHcsSmPu0wZ/8ads2PvHdAJa9Rk8qIFogd1oGHYr+fiNQrG6yYfqTM5fpe/S3Pz6BfM98xFMrKs6fnzKmNvrRDz8GlzWsza6sV7s8VmUoKXSAPqYyTrzESZjYZp9CkydyYioPiNOJi7sVx+O71hHgfWJeAHkIsKjt6Kz8NMXYvMIBoU+Fj9rRmZfRmbWtPw0nfxHBXdWSCoPZE0fQnN0aGaYe9P1p0/NMIifLQMQ== [email protected]

Ed25519

ℹ️
Ed25519 算法 虽然只有256位,但安全性比 RSA 3072更高
ℹ️
Github 已经默认推荐大家使用 Ed25519 详见:github
shell
1
2
3
ssh-keygen -t ed25519 -C "[email protected]"

ssh-keygen -t ed25519 -C "[email protected]" -f <path_to_key>

公钥短很多

ed25519
1
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILqpLYFo8wZdFDTYRvIHMAycKB6sSkvryefFLnlxie4j [email protected]

选项说明

选项说明
-t指定生成密钥的类型
默认 rsa,可选 dsa ecdsa ecdsa-sk ed25519 ed25519-sk rsa
-f指定生成密钥的目录
默认 ~/.ssh/id_rsa (私钥: id_rsa 公钥: id_rsa.pub)
-C提供一个新注释
例如邮箱 [email protected]
-b指定密钥长度(bits)默认是 2048 位

参考