如何用Python从RSA私钥中提取SSH公钥(AWS Lambda环境)
从RSA私钥生成SSH公钥(Python实现)
可以用cryptography库纯Python实现,无需调用shell命令,适配AWS Lambda环境,代码示例如下:
from cryptography.hazmat.primitives import serialization as crypto_serialization from cryptography.hazmat.backends import default_backend def generate_ssh_public_key(private_key_str): # 将私钥字符串转为字节流 private_key_bytes = private_key_str.encode('utf-8') # 加载PEM格式的RSA私钥 private_key = crypto_serialization.load_pem_private_key( private_key_bytes, password=None, # 如果私钥有密码,这里传入密码字节流(如b"your_pass") backend=default_backend() ) # 导出OpenSSH格式的公钥 public_key_bytes = private_key.public_key().public_bytes( encoding=crypto_serialization.Encoding.OpenSSH, format=crypto_serialization.PublicFormat.OpenSSH ) # 转为字符串返回 return public_key_bytes.decode('utf-8') # 使用示例:传入你的私钥变量 # ssh_pub_key = generate_ssh_public_key(private_key)
注意事项
- 如果AWS Lambda的Python运行环境默认没有
cryptography库,需要创建Lambda层并打包该库后附加到函数上。 - 若私钥设置了加密密码,需在
load_pem_private_key的password参数传入对应密码的字节流。
内容的提问来源于stack exchange,提问作者Mit94
相关产品推荐
相关产品推荐

