WinSCP SSH 错误未知命令'ssh-rsa'

WinSCP SSH error Unknown command 'ssh-rsa'

上下文: 我有通过 BCP 从 SQL 服务器输出的 CSV 文件。我正在尝试使用 WinSCP 将文件安全地传输到远程 SFTP 文件夹。

详细信息: 当我通过 powershell 执行下面的批处理文件时,我引发错误“未知命令 'ssh-rsa',日志文件显示退出代码 = 1,这是失败。

这是我的同步文件的样子...

option batch abort
option confirm off
open sftp://username:password@sftp.redacted.com -hostkey="ssh-rsa 2048 redacted=ssh-rsa 2048 redacted"
synchronize remote D:\redactedDaily_Reports\redacted_Catalog_New_Item /upload/redacted_catalog
exit

和我的批处理文件...

winscp.com /script=SyncTo_redacted_catalog.txt /log=D:\redacted_Daily_Reports\winscp_log_catalog.txt
pause

这是我的 powershell 输出和日志文件的片段... powershell output

. 2019-03-06 23:39:28.379 Access granted
. 2019-03-06 23:39:28.379 Opening session as main channel
. 2019-03-06 23:39:28.447 Opened main channel
. 2019-03-06 23:39:28.583 Started a shell/command
. 2019-03-06 23:39:28.583 --------------------------------------------------------------------------
. 2019-03-06 23:39:28.584 Using SFTP protocol.
. 2019-03-06 23:39:28.584 Doing startup conversation with host.
> 2019-03-06 23:39:28.584 Type: SSH_FXP_INIT, Size: 5, Number: -1
< 2019-03-06 23:39:28.769 Type: SSH_FXP_VERSION, Size: 95, Number: -1
. 2019-03-06 23:39:28.769 SFTP version 3 negotiated.
. 2019-03-06 23:39:28.769 Unknown server extension posix-rename@openssh.com="1"
. 2019-03-06 23:39:28.769 Supports statvfs@openssh.com extension version "2"
. 2019-03-06 23:39:28.769 Unknown server extension fstatvfs@openssh.com="2"
. 2019-03-06 23:39:28.769 We believe the server has signed timestamps bug
. 2019-03-06 23:39:28.769 We will use UTF-8 strings until server sends an invalid UTF-8 string as with SFTP version 3 and older UTF-8 strings are not mandatory
. 2019-03-06 23:39:28.769 Limiting packet size to OpenSSH sftp-server limit of 262148 bytes
. 2019-03-06 23:39:28.769 Getting current directory name.
. 2019-03-06 23:39:28.769 Getting real path for '.'
> 2019-03-06 23:39:28.769 Type: SSH_FXP_REALPATH, Size: 10, Number: 16
< 2019-03-06 23:39:28.837 Type: SSH_FXP_NAME, Size: 23, Number: 16
. 2019-03-06 23:39:28.837 Real path is '/'
. 2019-03-06 23:39:28.837 Startup conversation with host finished.
< 2019-03-06 23:39:28.837 Script: Active session: [1] redacted@sftp.redacted.com
> 2019-03-06 23:39:28.838 Script: ssh-rsa 2048 redacted
< 2019-03-06 23:39:28.838 Script: Unknown command 'ssh-rsa'.
. 2019-03-06 23:39:28.838 Script: Failed
. 2019-03-06 23:39:28.838 Script: Exit code: 1
. 2019-03-06 23:39:28.838 Closing connection.
. 2019-03-06 23:39:28.838 Sending special code: 12
. 2019-03-06 23:39:28.838 Sent EOF message

问题: 为什么我会引发此错误以及如何解决? 这个错误是否试图告诉我我使用的是不正确的密钥指纹——如果是这样,为什么会这样:a) 我第一次成功连接时直接从服务器获取了这个密钥,b) 日志文件似乎显示初始连接成功?

请帮助 非常感谢任何提示或建议 -- 考虑到 winscp 是一个非常受欢迎的实用程序,响应可能会达到相当数量的观众。我已完成研究 , here, here, here, here, here and here,但尚未找到合适的解决方案。

这是胡说八道:
-hostkey="ssh-rsa 2048 redacted=ssh-rsa 2048 redacted"
(你在哪里见过这么奇怪的语法?)

应该是这样的: -hostkey="ssh-rsa 2048 xxxxxxxxxxx...="

虽然它并不能真正解释您收到的错误消息——除非 redacted 部分中有一些特殊字符(如双引号)。


一般来说,最简单的方法就是have WinSCP GUI generate correct script template给你。


或者,如果您想采用手动方式,请参阅:
Where do I get SSH host key fingerprint to authorize the server?
特别是 "Automatic host key verification" 部分(尽管您会想从头开始阅读这篇文章)。

我知道您自己参考了这篇文章。但是后来我不明白你怎么会得到你奇怪的语法。