2010-10-06 18 views
0

...或者如果沒有,您能否提供鏈接或RFC編號到完整算法(從獲取ASCII編碼的私鑰文件/字符串到生成ASCII編碼的公鑰文件/字符串)。有沒有什麼辦法從使用Python的私人SSH生成公共SSH密鑰?

爲了向您展示更大的圖片 - 我開始使用pylibssh2庫。這個庫有一個方法 - userauth_publickey_fromfile(它引發了NotImplementedException,但是當你強制啓動python綁定時 - 它可以工作)。問題是這種方法需要私鑰(好)和公鑰(地獄知道爲什麼)。當然,我可以將這兩個鍵作爲參數傳遞給我的函數,但我認爲這是不必要的,我不希望僅僅爲此提供一個變量。所以我想自己生成私人公鑰。

也許我錯過了pylibssh2甚至libssh2本身的東西(我也可以爲它寫綁定)?

感謝您的幫助!

+0

找到完全相同的副本:http://stackoverflow.com/questions/2466401/how-to-generate-ssh-key-pairs-with-python – Daenyth 2010-10-06 20:06:27

+0

@Daenyth:不,這不是一個確切的重複。這只是相關的。 – 2010-10-07 02:24:33

回答

2

你需要嚴格的python答案嗎?你可以用ssh-keygen -y -f privatekey

+1

是的,我知道。但我試圖避免任何外部命令或shell執行。 – liadan 2010-10-06 19:55:44

0

我不知道你是怎麼得到userauth_publickey_fromfile()工作做到這一點,但根據http://github.com/wallix/pylibssh2/blob/master/libssh2/session.py,這種方法需要的密鑰文件,而不是密鑰本身路徑。

如果私鑰是你的,那麼公鑰和私鑰都應該駐留在你的〜/ .ssh目錄中。

私鑰和公鑰只能成對創建。如果你可以設法從另一箇中派生出一個,那麼密碼的宇宙就會爆炸。

公共密鑰必須可用於SSH連接的另一端。因此,此方法除了私鑰之外還需要它。

0
import commands 
cmd = "ssh-keygen -y -f %s" % (file) 
return commands.getstatusoutput(cmd)[1] 
相關問題