使用密码和密钥交换的 SFTP

使用密码和密钥交换的 SFTP

以前,我使用配置为如下的.txt 文件获取访问权限并传输文件(SSIS 执行进程任务):

option batch on
option confirm off
open sftp://Username:[email protected]:22  -hostkey="ssh-rsa 2222 00:00:00:00:00:0c:00:ee:e0:00:0d:0e:b0:0a:00:00"
option transfer binary
Put -nopermissions -resumesupport=Off   -nopreservetime E:\path.txt /Inbound/path/

现在我被告知使用一个新的 SFTP 结构 - 站点名称:hostname.com 和 IP 地址 100.00.000.000。

我提供了一个密码和密钥交换列表,例如:ECDHE-RSA-AES000-GCM-SHA000(密钥交换=ECDH;Auth=RSA)(出于安全原因,我更改了一些字符)

我如何更改 .txt 文件以使用这种新方式?

答案1

正如@Kim 所评论的那样,ECDHE-RSA-AES***-GCM-SHA***这是一个 TLS/SSL 密码套件。FTP(S) 使用 TLS/SSL。而 SFTP 使用 SSH。

你的脚本文件看起来像WinSCP 脚本

温SCP同时支持 SFTP 和 FTP(S)。

只需改变你的open命令使用ftpes://而不是sftp://。此外,端口号会有所不同,但我们假设您的 FTP(S) 服务器使用标准端口。也-hostkey与 FTPS 无关。

open ftpes://username:[email protected]/

脚本的其余部分可能保持不变。不过远程路径 ( /Inbound/path/) 也可能需要更新。


请注意,与 SFTP 相反,FTP 由 SSIS 原生支持。因此,您也可以使用原生 SSIS FTP 任务。但与简单的 WinSCP 脚本更新相比,这是一个更大的变化。

答案2

因此,WinSCP 的更新版本是 5.17.5。我传输文件的服务器 IP 地址已添加到接收服务器的白名单中。然后,我可以通过 WinSCP 的 UI 输入以下命令连接到接收服务器主机名用户名密码(我的情况是端口 22)。在高级设置 目录我添加了路径,SSH/密钥交换我保证体外循环氢可酮代谢密钥交换位居榜首,RSAbased 是第二个。登录成功。然后我去了会议标签 -生成 URL/代码,检查包括SSH 主机密钥(如果没有变灰)然后转到脚本选项卡,它会为您提供open该会话期间使用的初始命令。它会为您提供主机密钥的 SHA-256 指纹,而不是我们习惯使用的 MD5。复制到剪贴板,然后我将其用作脚本中的 Open 行:示例:

Option batch On
Option confirm Off

open sftp://Username:[email protected]/ -hostkey="ssh-rsa 2048 k8L86hrEaiZI+v/fxxxxx/Igxxxxxxx/iF1iKzI=" -rawsettings KEX="ecdh,rsa,dh-gex-sha1,dh-group14-sha1,WARN,dh-group1-sha1"

# Your command 1
# Your command 2
Close
exit

现在我的脚本执行并传输文件。

相关内容