如何在 SSIS 中使用 OpenSSH 通过 SFTP 传输文件?

Posted

技术标签:

【中文标题】如何在 SSIS 中使用 OpenSSH 通过 SFTP 传输文件?【英文标题】:How to transfer file with SFTP using OpenSSH in SSIS? 【发布时间】:2021-06-07 17:40:10 【问题描述】:

在我的项目中,我必须使用 OpenSSH sftp 工具来使用 SFTP 传输文件,并且它应该从 SSIS 执行。从上个月开始,我进行了很多搜索,但找不到任何解决方案。我确实使用 WinSCP 从 SSIS 传输文件,但客户端现在切换到 OpenSSH。

有人知道如何使用 OpenSSH 传输文件吗?如果有人有任何解决方案,这将是一个很大的帮助。

我正在传输单个文件,我想要上传和下载。我们正在使用私钥进行身份验证。

在 WinSCP 中,我正在执行一个 .bat 文件,该文件将调用一个 .txt 文件,并且 .txt 具有 SFTP putget 命令。

【问题讨论】:

【参考方案1】:

所以我假设你有一个像这样运行 WinSCP 的批处理文件:

c:\path\to\winscp.com /script=c:\path\to\script.txt

还有一个 WinSCP 脚本 script.txt 使用私钥对 SFTP 服务器进行身份验证并上传和下载文件:

open -privatekey=c:\path\to\key.ppk sftp://username@example.com/
get /remote/path/file.txt c:\local\path\file.txt
put c:\other\local\path\file2.txt /other/remote/path/file2.txt
exit

这将转换为OpenSSH sftp,如下所示:

sftp.exe -b c:\path\to\script.txt -i c:\path\to\key.pem username@example.com

还有一个用于传输文件的sftp 脚本script.txt

get /remote/path/file.txt c:\local\path\file.txt
put c:\other\local\path\file2.txt /other/remote/path/file2.txt

您必须使用PuTTYgen 将您的 WinSCP .ppk 私钥转换为 PEM 格式才能与 OpenSSH 一起使用。


converting OpenSSH script to WinSCP 有一个指南。虽然这与您想要的完全相反,但通过一些努力,您仍然可以从中挖掘出一些想法。

【讨论】:

感谢您的回答。我需要提供 sftp.exe 的完整路径吗?喜欢 D:\openSSH\SFTP.exe Windows 10 内置的 Win32-OpenSSH,您不必这样做,因为它的文件夹位于 Windows PATH

以上是关于如何在 SSIS 中使用 OpenSSH 通过 SFTP 传输文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过在SSIS中调用函数或存储过程来使用拆分转换过滤和拆分数据?

如何使用 C# 找出安装在 SQL Server 中的 SSIS?

如何在 SQL Standard 上导出 SSIS 数据并在 SQL Express 上使用 Bulk Insert 导入?

通过 SSIS 处理 SFTP 或 FTPS 文件的最佳方法 [关闭]

使用 SSIS 2008 自动生成 s-s-rS 2008 报告

SSIS/集成服务器访问问题 - 没有本地管理员权限