2012-12-15 32 views
2

我在C#中編寫了一個實用程序,需要通過SSH自動連接到服務器(使用SSH.NET),這一直是一個非常輕鬆的過程。服務器強制公鑰認證(服務器是我的,我有完全的物理控制),這樣只有少數人可以訪問它。從選美中讀取私人SSH密鑰

在Windows上,我們都設置了用於使用TortoiseGit與我的服務器進行通信的Pageant,因此我只需從Pageant中讀取已解鎖的內存中私鑰而不要求重新輸入密碼每次我想調試/運行該實用程序。

到目前爲止,我發現的最接近的東西是this Python module from Paramiko,它檢查Pageant窗口的存在並公開發送和接收方法。這應該很容易移植到C#,但我很想知道什麼命令我需要發送給Pageant以接收密鑰?

通過Paramiko看,這不是直接顯而易見的,我找不到任何以編程方式使用Pageant的文檔。答案不一定要在C#中,但如果它們是,它將使我不必爲它編寫一個小型實用程序。

+0

另一個參考是'net-ssh' https://github.com/net-ssh/net-ssh/blob/master/lib/net/ssh/authentication/pageant.rb –

回答

2

您不會從Pageant中讀取私鑰,而是要求Pageant計算簽名。這需要修改客戶端的源代碼。

在SecureBlackbox產品的最新版本中,我們爲.NET的SSH和SFTP客戶端組件添加了Pageant和ssh-agent支持,因此您可能需要查看它們。

+0

對不起,延遲響應,I最終放棄了這個項目。不過,謝謝,現在這樣做更有意義。 –

相關問題