如何从FileZilla FTP客户端的密钥缓存中提取SFTP SSH密钥

如何从FileZilla FTP客户端的密钥缓存中提取SFTP SSH密钥,ftp,sftp,filezilla,Ftp,Sftp,Filezilla,我已经使用FileZilla通过SFTP连接到服务器,并接受将服务器的SSH密钥添加到FileZilla中的密钥缓存中 如何将此缓存密钥提取到密钥文件中,以便可以通过需要密钥文件可用的其他SFTP应用程序使用它 我在FileZilla文档中找不到与此相关的任何内容。除非我误解了你:你不需要 如果您使用另一个应用程序(例如:PuTTY)连接到服务器,并且它以前没有看到服务器,则系统将提示您接受密钥 我明白您为什么要这样做,但是每个应用程序都可以有自己的方式来存储密钥。如果您使用标准openssh控

我已经使用FileZilla通过SFTP连接到服务器,并接受将服务器的SSH密钥添加到FileZilla中的密钥缓存中

如何将此缓存密钥提取到密钥文件中,以便可以通过需要密钥文件可用的其他SFTP应用程序使用它


我在FileZilla文档中找不到与此相关的任何内容。

除非我误解了你:你不需要

如果您使用另一个应用程序(例如:PuTTY)连接到服务器,并且它以前没有看到服务器,则系统将提示您接受密钥


我明白您为什么要这样做,但是每个应用程序都可以有自己的方式来存储密钥。

如果您使用标准openssh控制台客户端(cygwin或linux),主机密钥存储在~/.ssh/known_hosts中,每行一个。从这里开始,只需找出您的库需要主机密钥的哪一位


Putty也存储主机密钥,但它似乎用十六进制编码。可以在HKCUR\Software\SimonTatham\PuTTY\SshHostKeys上找到这些信息。Thomas是正确的。FileZilla搭载PuTTY的PSFTP程序,并将以十六进制格式编码的保存密钥存储在他列出的注册表项(HKCUR\Software\SimonTatham\PuTTY\SshHostKeys)中。我需要已知_hosts格式的密钥,因此我能够根据他的建议安装一个,并使用ssh keyscan工具点击服务器并以正确的格式保存密钥信息:

ssh-keyscan -t rsa <my_ftp_ip_address> > c:\known_hosts
ssh-keyscan -t dsa <my_ftp_ip_address> > c:\known_hosts
ssh-keyscan-t rsa>c:\known\u主机
ssh keyscan-tdsa>c:\known\u主机

谢谢托马斯等人

谢谢道格曼的提示

进一步帮助新来者阅读你的答案
在运行ssh密钥扫描之前,假设openssh默认为install,则需要运行一些命令(有关详细信息,请阅读quickstart/readme安装)。
以下是我的命令,允许我获取主机密钥

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

如果您更愿意使用GUI,可以使用WinSCP FTP client从日志窗口或第一次连接弹出窗口中获取主机密钥:

我希望的最终结果是使用EnterpriseDT.com中的库通过Java执行SFTP。部分API要求在连接时提供密钥文件或密钥文本本身。我似乎找不到关于如何从我试图连接的SFTP服务器中提取关键信息以便保存它的信息。想法?因为他正在用Java编写自己的应用程序。或者,使用WinScpNet库运行PowerShell脚本。可能有多种原因。