2016-12-12 4 views
0

übertragen Ich verwende tFTPConnection, um eine Verbindung zu SFTP mit einer öffentlichen Schlüsseldatei und ich bin erfolgreich in der Lage, eine Verbindung zu ihm herzustellen.
enter image description here

enter image description here

Der String MYFilename ist im Inneren des tJava

enter image description here

Ich brauche einige Dateien von der lokalen zur Übertragung auf SFTP eingestellt. Ich benutze einen tFTPPut für diesen Zweck.

enter image description here
. Wenn ich jedoch mit SFTP verbunden bin, kann ich mithilfe einer Passwortauthentifizierung alle Dateien erfolgreich übertragen. Aber wenn ich eine Verbindung mit der Schlüsseldatei herstelle, bekomme ich den Fehler 'No Match File Exists' und es werden keine Dateien übertragen.
Ich weiß nicht, was mir im Code fehlt.
Bitte helfen.
Der Fehler, die ich erhalten, ist als unten-

enter image description here

Datei nicht mit SFTP-Schlüssel-Authentifizierung in tFTPPut inTalend

Antwort

0

Meen,

auf der Info Basierend Verfügung gestellt und die Screenshots Ihr Problem auf Ihrer Konfiguration und Distribution basiert und Ihre Schlüssel. Um mit der öffentlichen Schlüsselmethode eine Verbindung zu einem SFTP-Server herzustellen, müssen Sie zuerst ein öffentliches/privates Schlüsselpaar generieren. Dann müssen Sie Ihren öffentlichen Schlüssel auf dem Server installiert haben. In Ihrem Talend-Job sollte der private Schlüssel context.private_key sein (mit dem Pfad zu Ihrem eigentlichen privaten Schlüssel). Sie zeigen auf Ihren öffentlichen Schlüssel (context.public_key). Wenn Ihr privater Schlüssel eine Passphrase hat (Sie sollten beim Generieren von öffentlichen/privaten Schlüsselpaaren immer eine Passphrase verwenden), müssen Sie diese ebenfalls eingeben.

Talend wird dann Ihren privaten Schlüssel verwenden, um eine Signatur zu generieren. Der Server verwendet Ihren öffentlichen Schlüssel, um die Signatur zu authentifizieren. Dies wird anstelle eines Passworts verwendet. Es ist sicherer, aber schwieriger einzurichten.

Die andere Sache ist, bevor Sie irgendeine Art von FTP in Talend einrichten, immer einen Client (wie WINSCP) verwenden, um zuerst irgendwelche Verbindungsknicke auszuarbeiten. Es ist viel einfacher, die grundlegenden Verbindungs- und Authentifizierungsprobleme auf diese Weise zu debuggen. Sobald Sie wissen, dass es funktioniert, übertragen Sie die richtige Einstellung zu Talend und alle Probleme von diesem Punkt sind viel einfacher zu lösen.

Sie können auch andere Probleme haben, aber basierend auf den Informationen, die Sie angegeben haben, ist dies, wo ich anfangen würde.

+0

Vielen Dank @ E-LaRoche .. – Meen

+0

Die Schlüsseldatei, die ich verwende, ist ein privater Schlüssel. (Sorry, ich nannte die Kontextvariable falsch). Es ist eine .key-Datei. Ich kann mich erfolgreich mit dem SFTP verbinden, aber keine Datei übertragen. Ich bekomme den folgenden Fehler - Ausnahme in der Komponente tFTPPut_18 2: Das System kann die angegebene Datei nicht finden. \t bei com.jcraft.jsch.ChannelSftp.throwStatusError (ChannelSftp.java:2297) \t bei com.jcraft.jsch.ChannelSftp._stat (ChannelSftp.java:1750) – Meen

+0

Sie bitte die context.public_key mit dem wahren Pfad ersetzen mit das Dateiauswahl-Steuerelement Talend bietet. Es könnte einfach ein falscher Pfad sein, b. falsche Syntax in Pfadkontextvariable, c. Talend hat kein Zugriffsrecht auf den Pfad. Laufen Sie auf Windows oder Unix? –

Verwandte Themen