我已經使用FileZilla通過SFTP連接到服務器,並接受將服務器的SSH密鑰添加到FileZilla中的密鑰緩存中。如何在FileZilla FTP客戶端中從密鑰緩存中提取SFTP SSH密鑰
如何將此緩存的密鑰提取到密鑰文件,以便可以通過其他需要使密鑰文件可用的SFTP應用程序使用它?
我一直沒有找到任何與FileZilla相關的文檔。
我已經使用FileZilla通過SFTP連接到服務器,並接受將服務器的SSH密鑰添加到FileZilla中的密鑰緩存中。如何在FileZilla FTP客戶端中從密鑰緩存中提取SFTP SSH密鑰
如何將此緩存的密鑰提取到密鑰文件,以便可以通過其他需要使密鑰文件可用的SFTP應用程序使用它?
我一直沒有找到任何與FileZilla相關的文檔。
如果您使用標準openssh控制檯客戶端(cygwin或linux),則主機密鑰以每行一次的形式存儲在〜/ .ssh/known_hosts中。從那裏,找出你的庫需要哪個主密鑰位是一件簡單的事情。
膩子也存儲主機密鑰,但它似乎以十六進制編碼它們。這些可以在HKCUR \ Software \ SimonTatham \ PuTTY \ SshHostKeys找到
除非我誤解你:你不需要。
如果您使用其他應用程序(即:PuTTY)連接到服務器,並且它之前沒有看到服務器,則系統會提示您接受密鑰。
我明白了爲什麼你可能想這樣做,但每個應用程序可以有自己的方式來存儲密鑰。
因爲他正在用Java編寫自己的應用程序。 – PRMan 2017-10-26 23:53:28
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!
感謝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
如果你想用一個圖形用戶界面,你可以使用WinSCP賦予FTP客戶端阻攔從日誌窗口或第一次連接彈出主鍵:https://winscp.net/eng/docs/ssh_verifying_the_host_key
最終的結果,我拍攝的是使用來自EnterpriseDT.com的庫通過Java執行SFTP。部分API需要在連接時提供密鑰文件或密鑰文本本身。我似乎無法找到有關如何從我嘗試連接的SFTP服務器上獲取關鍵信息的信息,以便我可以保存它。想法? – 2010-01-29 17:29:23