python 秘钥_python 生成ssh秘钥对
工作中要用到ssh-keygen生成的公鑰和私鑰,查了很多網(wǎng)站,大部分人用的是Crypto.PublicKey包中的RSA類來模擬ssh-keygen生成秘鑰對。偶然間發(fā)現(xiàn)paramiko也有一個可以用來生成秘鑰對的類(paramiko.rsakey.RSAKey),最后選擇用paramiko的RSAKey來生成秘鑰對。關(guān)于paramiko生成不同加密方式的秘鑰對的詳細(xì)信息,請到官網(wǎng)上看http://docs.paramiko.org/en/2.0/api/keys.html
def gen_keys(key=""):
"""
生成公鑰 私鑰
"""
output = StringIO.StringIO()
sbuffer = StringIO.StringIO()
key_content = {}
if not key:
try:
key = RSAKey.generate(2048)
key.write_private_key(output)
private_key = output.getvalue()
except IOError:
raise IOError('gen_keys: there was an error writing to the file')
except SSHException:
raise SSHException('gen_keys: the key is invalid')
else:
private_key = key
output.write(key)
try:
key = RSAKey.from_private_key(output)
except SSHException, e:
raise SSHException(e)
for data in [key.get_name(),
" ",
key.get_base64(),
" %s@%s" % ("magicstack", os.uname()[1])]:
sbuffer.write(data)
public_key = sbuffer.getvalue()
key_content['public_key'] = public_key
key_content['private_key'] = private_key
logger.info('gen_keys: key content:%s'%key_content)
return key_content我最后是把公鑰和私鑰放在了一個字典里,你也可以根據(jù)需要生成文件,這個類還是很方便的
總結(jié)
以上是生活随笔為你收集整理的python 秘钥_python 生成ssh秘钥对的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学姐说 | 大学生如何自学短视频剪辑配音
- 下一篇: android 百度地图线路规划问题