2016-12-12 38 views
0

我正在使用tFTPConnection使用公钥文件连接到SFTP,并且我能够成功连接到它。
enter image description here

enter image description here

字符串MyFileName的是被设定的tJava

enter image description here

我需要一些文件传输从地方到SFTP内。我正在使用tFTPPut来达到这个目的。

enter image description here
。但是,当我连接到SFTP时,使用密码认证,我可以成功传输所有文件。但是当我使用密钥文件进行连接时,我得到'No Match File Exists'错误,并且没有文件被传输。
我不知道我在代码中缺少什么。
请帮忙。为如下─

enter image description here

文件未通过tFTPPut中的密钥文件身份验证传输到SFTP

回答

0

Meen,根据您所提供的信息,你的问题是基于你的钥匙你的配置和分发和截图


这是我收到的错误是。要使用公钥方法连接到SFTP服务器,您必须首先生成一个公钥/私钥对。然后,您必须在服务器上安装您的公钥。在您的Talend作业中,私钥值应该是context.private_key(包含实际私钥的路径)。你指向你的公钥(context.public_key)。如果您的私钥具有密码短语(在生成公钥/私钥对时应始终使用密码短语),那么您也必须输入此密码。

Talend将使用您的私钥生成签名。服务器将使用您的公钥来验证签名。这用于代替密码。它更安全,但更难以设置。

另一件事情是,在Talend中设置任何类型的FTP之前,请始终使用客户端(如WINSCP)首先解决任何连接扭结问题。以这种方式调试基本连接和身份验证问题更容易。一旦你知道它的工作原理,将适当的设置转移到Talend,从这一点出发的任何问题都将更容易解决。

您可能还有其他问题,但根据您提供的信息,我将从此开始。

+0

非常感谢@ E-LaRoche .. – Meen

+0

我正在使用的密钥文件是一个私钥(对不起,我错误地命名了上下文变量)。它是一个.key文件。 我能够成功连接到SFTP,但无法传输任何文件。 我收到以下错误 - 组件异常tFTPPut_18 2:系统找不到指定的文件。 \t在com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2297) \t在com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:1750) – Meen

+0

,请使用替换的真正路径context.public_key Talend提供的文件选择控制。它可能只是一个错误的路径,b。路径上下文变量中的语法不正确,c。 Talend无权访问路径。你在Windows或Unix上运行? –