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

Dou*_*ter 14 ftp sftp filezilla

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

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

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

Tom*_*eld 15

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

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


Dou*_*ter 7

托马斯是对的.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
Run Code Online (Sandbox Code Playgroud)

谢谢Thomas和SO!


Nas*_*jib 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
Run Code Online (Sandbox Code Playgroud)


drz*_*aus 5

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