1. 公私钥对
1.1. 从私钥生成一个公钥
ssh-keygen -y -f id_rsa > id_rsa.pub
1.2. 生成公私钥对
ssh-keygen -t rsa -b 4096 -C "[email protected]"
-C
备注
-f
文件名
-t
指定生成类型 rsa / rsa1
-b
位数
1.3. OpenSSL 格式 转 pem 格式
ssh-keygen -p -N "" -m pem -f /path/to/key
1.4. 公钥类型
- BEGIN RSA PUBLIC KEY 是 PKCS#1
- BEGIN PUBLIC KEY 是 PKCS#8
PKCS#8 to PKCS#1
openssl rsa -pubin -in <filename> -RSAPublicKey_out
PKCS#1 to PKCS#8
openssl rsa -RSAPublicKey_in -in <filename> -pubout
1.5. 转换 OPENSSL 新格式私钥为 PKCS1 格式
ssh-keygen -p -N "" -m pem -f /path/to/key
1.6. ssh-keygen 的 rsa 公钥生成 PKCS1 公钥
ssh-keygen -f key.pub -e -m pem
1.7. 获取 pem
- 私钥提取 private.pem
openssl rsa -in xxx.key -out private.pem
- private.pem 转 public.pem
openssl rsa -in private.pem -RSAPublicKey_out -out public.pem
BEGIN RSA PUBLIC KEY" is PKCS#1 BEGIN PUBLIC KEY" is PKCS#8
1.7.1. To convert from PKCS#8 to PKCS#1:
openssl rsa -pubin -in <filename> -RSAPublicKey_out
1.7.2. To convert from PKCS#1 to PKCS#8:
openssl rsa -RSAPublicKey_in -in <filename> -pubout
1.7.3. Private to convert from PKCS#1 to PKCS#8
openssl pkcs8 -topk8 -nocrypt -inform PEM -in rsa_private_key.pem -out rsa_private_key_pkcs8.pem