使用pycrypto

时间:2016-03-28 10:56:01

标签: python openssh pycrypto ecdsa dsa

如何使用给定的私钥创建DSA openssh格式的公钥?

openssh公钥格式如下所示:

ssh-dss AAAAB3NzaC1kc3MAAACBAKFY7ysDwhMf5j3IOmPg1ztzAodBzQHua5m7/IM8nEYdCDeLzI+Jx24pRDUKseRVC5DUIHU7sRtRpCMDmGBcJwxHF9G4ofrP5hlUaDTHeKHrOKgGdRzPw5xtExImwYfCn97HMc6OpQrsAysL7KCxQHgD41t7IEaSQRjK8zK2IBqJAAAAFQD6Wjepos/lp0Vw8mrRLMIEhocZpQAAAIBXJ+E3J+dMOIHlYpEYm6BmI92/YhAT3+4rfDORQkUtcgmyQiAJ4CWvOBrcwK7zpLZ/pNNujv3cc4whigAqnZm9f+x8LDT7iIZ3FGdvHFDxYiTZVJTv2g1kaS/AABG5KfsVVkV2TP+XO12EjoEjoNvgjA1Z0fSeeKeP8YQNgMNjFgAAAIAobgPabsJCnFuazy+WOoo9SgfqeafXbrsxWPbKV4mjbUKXbOASV4F35Vuk1DAFRRP2/xYxv2QsiW4F2wsGSlsfnvb8bbmhzFHU81BrPRd1R60JUCDnvwVYJlJUqIvgfYbi3AXuxaqK3cLKWIFZGrYGyd2x8DRNpE7SLDMfWY7Jgw== root@Server

使用pycrypto,与RSA相同的工作正常:

key.publickey().exportKey('OpenSSH')

不幸的是,DSA对象没有exportKey()函数。

我的ecdsa键也有类似的问题。最重要的是,我需要一个python等价物(对于DSA和ecdsa):

ssh-keygen -y -f /path/to/private_key > /path/to/public_key

1 个答案:

答案 0 :(得分:0)

表达式:

 key.publickey().exportKey('OpenSSH')

以PyCrypto分支PyCryptodome支持以OpenSSH格式获取DSA公钥。