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

时间:2008-09-04 16:09:21

标签: ftp sftp filezilla

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

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

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

5 个答案:

答案 0 :(得分:15)

如果您使用标准的openssh控制台客户端(cygwin或来自linux),则主机密钥将存储在〜/ .ssh / known_hosts中,每行一个。从那里,只需要确定您的库需要哪个主机密钥位。

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

答案 1 :(得分:7)

托马斯是对的。 FileZilla搭载PuTTY的PSFTP程序,并将以十六进制格式编码的已保存密钥存储在他列出的注册表项(HKCUR \ Software \ SimonTatham \ PuTTY \ SshHostKeys)中。我需要使用known_hosts格式的密钥,因此我能够根据他的推荐安装windows version of 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!

答案 2 :(得分:6)

感谢Dougman的提示!

进一步帮助任何新手阅读你的答案。
在运行ssh-keyscan之前,假设默认情况下openssh是安装的,则需要运行一些命令(有关详细信息,请阅读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

答案 3 :(得分:4)

如果您更喜欢使用GUI,则可以使用WinSCP FTP客户端从日志窗口或首次连接弹出窗口中锁定主机密钥:https://winscp.net/eng/docs/ssh_verifying_the_host_key

答案 4 :(得分:0)

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

如果您使用其他应用程序(即:PuTTY)连接到服务器并且之前没有看过服务器,系统将提示您接受该密钥。

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