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

时间:2020-03-05 18:47:42  来源:igfitidea点击:

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

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

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

解决方案

回答

除非我对我们有误解,否则我们不需要。

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

我明白了为什么我们可能想要这样做,但是每个应用程序可以使用其自己的方式来存储密钥。

回答

如果使用标准的openssh控制台客户端(cygwin或者Linux),则主机密钥以一行一行的方式存储在〜/ .ssh / known_hosts中。从那里开始,很简单的事情就是弄清楚库需要该主机密钥的哪一部分。

Putty还存储主机密钥,但似乎将它们编码为十六进制。这些可以在HKCUR \ Software \ SimonTatham \ PuTTY \ SshHostKeys中找到

回答

托马斯是正确的。 FileZilla在PuTTY的PSFTP程序上搭载,并将存储的十六进制编码的密钥存储在他列出的注册表项(HKCUR \ Software \ SimonTatham \ PuTTY \ SshHostKeys)中。我需要采用known_hosts格式的密钥,因此我可以按照他的建议安装Windows版本的openssh,并使用ssh-keyscan工具命中服务器并以正确的格式保存密钥信息:

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

谢谢Thomas和SO!