密码学/Generate a keypair using OpenSSL
< 密码学
下载并安装OpenSSL:OpenSSL。如果使用Windows操作系统,从这里下载[1]。
OpenSSL可以生成几种公钥/私钥对。RSA时最常用的。[1]
也可以用PuTTYgen或ssh-keygen生成RSA公钥/私钥对[2][3]
使用2048位私钥生成RSA密钥对
编辑执行命令: "openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048"[4] (以前是 “openssl genrsa -out private_key.pem 2048”)
从RSA密钥对抽取公钥
编辑执行命令: "openssl rsa -pubout -in private_key.pem -out public_key.pem"
该命令只是抽取出存放在私钥文件中的公钥,并用Base64 PEM编码后写入公钥文件中。[5]
查看密钥
编辑执行命令: "openssl rsa -text -in private_key.pem"
显式内容包括:[6]
- modulus (也称作public key与 n)
- public exponent (也称作 e 与 exponent; 缺省值是 0x010001)
- private exponent
- 两个质数用于创建密钥。
- prime1,称作p
- prime2,称作q
- exponent1 等于d mod (p − 1)。
- exponent2 等于d mod (q − 1)。
- coefficient 是CRT系数 q–1 mod p。
把BASE64编码的.pem文件解码为二进制文件:
openssl base64 -d -in private_key.pem -out private_key_bin.pem
无口令的登录
编辑进一步阅读
编辑- ↑ Key Generation
- ↑ Michael Stahnke. "Pro OpenSSH". p. 247.
- ↑ 3.0 3.1 "SourceForge.net Documentation: SSH Key Overview"
- ↑ "genpkey(1) - Linux man page"
- ↑ "Public – Private key encryption using OpenSSL"
- ↑ "OpenSSL 1024 bit RSA Private Key Breakdown"
- ↑ "DreamHost: Personal Backup".
- ↑ Troy Johnson. "Using Rsync and SSH: Keys, Validating, and Automation".
- en:Internet_Technologies/SSH describes how to use "ssh-keygen" and "ssh-copy-id" on your local machine so you can quickly and securely ssh from your local machine to a remote host.
- "OpenSSL: Command Line Utilities: Create / Handle Public Key Certificates"