16

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

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

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

4

5 回答 5

18

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

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

于 2008-09-04T20:12:16.263 回答
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

谢谢托马斯和SO!

于 2008-09-04T20:34:22.280 回答
6

感谢道格曼的提示!

为了进一步帮助任何新人阅读您的答案。
在运行 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
于 2012-08-30T03:38:26.227 回答
6

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

于 2016-03-02T21:51:22.030 回答
0

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

如果您使用另一个应用程序(即:PuTTY)连接到服务器并且它之前没有看到服务器,那么您将被提示接受密钥。

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

于 2008-09-04T19:10:54.647 回答