1

我有两个脚本可以将文件上传到 SFTP 服务器:

sftp2 --identity-key-file=D:\test_ssh2 -B d:\test.txt testUser@xxx.xxx.xxx.xxx
open sftp://testUser@xxx.xxx.xxx.xxx -privatekey=D:\test.ppk -hostkey="ssh-rsa 1536 xxxxxxxxxxxxxxxxxxxxxxxxxxx"

请帮忙解释一下:

  1. 这两个脚本有什么区别?
  2. 为什么第一个脚本不需要任何主机密钥,而第二个脚本需要它?
  3. 我可以在不使用任何主机密钥的情况下使用私钥调用 SFTP 吗?
4

1 回答 1

1

这两个脚本有什么区别?

第一个是使用 Tectiasftp2.exe客户端的批处理文件。
第二个是 WinSCP 脚本文件。


为什么第一个脚本不需要任何主机密钥,而第二个脚本需要它?

大多数 SFTP/SSH 客户端会在第一次连接时提示您验证主机密钥指纹。如果您验证主机密钥,它将被缓存,并且您下次不会收到提示。

Tectiasftp2.exe和 WinSCP 也不例外。

如果您的 Tectiasftp2.exe脚本按原样运行,则您必须先在此客户端中手动验证主机密钥。

虽然您的 WinSCP 脚本包含主机密钥的显式指纹。因此,即使您在运行脚本之前没有使用 WinSCP 手动验证主机密钥,该脚本也将起作用。建议使用 WinSCP,因为它使您的脚本可移植(不依赖于主机密钥的隐藏缓存)。但是,如果您愿意,您可以使用 WinSCP 手动验证主机密钥,就像使用 Tectia 一样。


我可以在不使用任何主机密钥的情况下使用私钥调用 SFTP 吗?

私钥与主机密钥无关。所以这个问题意义不大。请参阅有关SSH 密钥对的WinSCP 文章以了解。

于 2017-09-04T09:27:14.287 回答