我有两个脚本可以将文件上传到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"
请帮忙解释一下:
答案 0 :(得分:1)
这两个脚本有什么区别?
第一个是使用Tectia sftp2.exe
客户端的批处理文件
第二个是WinSCP脚本文件。
为什么第一个脚本不需要任何主机密钥,而第二个脚本需要它?
大多数SFTP / SSH客户端将提示您在第一次连接时验证主机密钥指纹。如果验证主机密钥,它将被缓存,下次不会收到提示。
Tectia sftp2.exe
和WinSCP也不例外。
如果您的Tectia sftp2.exe
脚本按原样运行,则必须先手动验证此客户端中的主机密钥。
虽然您的WinSCP脚本包含主机密钥的明确指纹。因此,即使您在运行脚本之前未使用WinSCP手动验证主机密钥,脚本也会正常工作。建议使用WinSCP,因为它makes your script portable(不依赖于主机密钥的隐藏缓存)。但如果您愿意,可以使用WinSCP手动验证主机密钥,就像使用Tectia一样。
我可以使用私钥调用SFTP而不使用任何主机密钥吗?
私钥与主机密钥无关。所以这个问题没什么意义。请参阅SSH key pairs上的WinSCP文章以了解。