2008-09-04 15 views
12

我已經使用FileZilla通過SFTP連接到服務器,並接受將服務器的SSH密鑰添加到FileZilla中的密鑰緩存中。如何在FileZilla FTP客戶端中從密鑰緩存中提取SFTP SSH密鑰

如何將此緩存的密鑰提取到密鑰文件,以便可以通過其他需要使密鑰文件可用的SFTP應用程序使用它?

我一直沒有找到任何與FileZilla相關的文檔。

+0

最終的結果,我拍攝的是使用來自EnterpriseDT.com的庫通過Java執行SFTP。部分API需要在連接時提供密鑰文件或密鑰文本本身。我似乎無法找到有關如何從我嘗試連接的SFTP服務器上獲取關鍵信息的信息,以便我可以保存它。想法? – 2010-01-29 17:29:23

回答

12

如果您使用標準openssh控制檯客戶端(cygwin或linux),則主機密鑰以每行一次的形式存儲在〜/ .ssh/known_hosts中。從那裏,找出你的庫需要哪個主密鑰位是一件簡單的事情。

膩子也存儲主機密鑰,但它似乎以十六進制編碼它們。這些可以在HKCUR \ Software \ SimonTatham \ PuTTY \ SshHostKeys找到

0

除非我誤解你:你不需要。

如果您使用其他應用程序(即:PuTTY)連接到服務器,並且它之前沒有看到服務器,則系統會提示您接受密鑰。

我明白了爲什麼你可能想這樣做,但每個應用程序可以有自己的方式來存儲密鑰。

+0

因爲他正在用Java編寫自己的應用程序。 – PRMan 2017-10-26 23:53:28

5

Thomas是正確的。 FileZilla搭載PuTTY的PSFTP程序,並將所保存的以十六進制格式編碼的密鑰存儲在列出的註冊表項(HKCUR \ Software \ SimonTatham \ PuTTY \ SshHostKeys)中。我需要的known_hosts格式的關鍵,所以我已經能夠在他的建議安裝windows version of openssh和使用SSH-鍵掃描工具打服務器,並進行保存的關鍵信息以正確的格式:

ssh-keyscan -t rsa <my_ftp_ip_address> > c:\known_hosts 
ssh-keyscan -t dsa <my_ftp_ip_address> > c:\known_hosts 

謝謝托馬斯和SO!

5

感謝Dougman的提示!

爲了進一步幫助任何新人閱讀您的答案。
在運行ssh-keyscan之前,假設默認安裝openssh,需要運行一些命令(請閱讀quickstart/readme install瞭解詳細信息)。
這是我的命令,它允許我獲得主機密鑰。

C:\Program Files\OpenSSH\bin>mkgroup -l >> ..\etc\group 
C:\Program Files\OpenSSH\bin>mkpasswd -l >> ..\etc\passwd 
C:\Program Files\OpenSSH\bin>net start opensshd 
The OpenSSH Server service is starting. 
The OpenSSH Server service was started successfully. 
C:\Program Files\OpenSSH\bin>ssh-keyscan -t rsa vivo.sg.m.com > c:\known_hosts 
vivo.sg.m.com SSH-2.0-Sun_SSH_1.1