SFTP-Verbindung über Java-Fragen für komische Authentifizierung
Also ich Schreibe ein kleines Programm benötigt, um eine Verbindung zu einem remote-server über SFTP, pull-down eine Datei und dann die Datei verarbeitet. Ich kam über JSch über einige Antworten hier und es sah perfekt für die Aufgabe. So weit, einfach zu bedienen und ich habe es zu arbeiten, mit einer kleinen Sache, die ich gern beheben. Ich bin mit dem folgenden code zu verbinden und ziehen Sie die Datei:
JSch jsch = new JSch();
Session session = null;
try {
session = jsch.getSession("username", "127.0.0.1", 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword("password");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
sftpChannel.cd(REMOTE_FTP_DIR);
sftpChannel.lcd(INCOMING_DIR);
sftpChannel.get(TMP_FILE, TMP_FILE);
sftpChannel.exit();
session.disconnect();
} catch (JSchException e) {
e.printStackTrace();
} catch (SftpException e) {
e.printStackTrace();
}
Damit das funktioniert und ich bekomme die Datei. Ich bin mit diesem code auf einem linux-server und wenn ich den code ausführen JSch fragt mich nach meinem Kerberos-Benutzernamen und Passwort. Es sieht so aus:
Kerberos-Benutzername [george]:
Kerberos-Passwort für george:
Ich einfach enter drücken für beide Fragen und dann das Programm scheint weiter keine Probleme. Aber ich brauche diesen code, um automatisiert über einen cron-task, und so würde ich eher nicht dass es das anhalten des Programms zu bitten, mir diese zwei Fragen. Gibt es etwas, das ich nicht gemacht, ist es so, dass es nicht diese Frage? Etwas muss ich tun, um zu stoppen, es zu Fragen? Ich hoffe jemand hat ein paar Ideen. Danke.
InformationsquelleAutor cardician | 2012-06-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dachte, ich würde post hier eine Antwort, da im Fall, jemand endet, läuft in ein ähnliches Problem. Stellt sich heraus, ich bin fehlt ein Stück code, das macht den Unterschied. Ich brauchte nur hinzufügen
bevor
und alles funktioniert nun perfekt.
dies funktionierte wunderbar, glückliches neues Jahr 😀
Du hast mich gerettet, danke 🙂
gute Antwort... hat funktioniert!
komisch, dass gestern mein code war in Ordnung arbeiten, ohne diese, und jetzt werde es nur mit diesem arbeiten. Vielen Dank für diese!
InformationsquelleAutor cardician
, Während die Lösung in der selbst-akzeptierte Antwort ist richtig, es fehlt jegliche Erklärung.
Das problem ist, dass die OP ein Kerberos/GSSAPI-Authentifizierung legen Sie als bevorzugte (JSch Standard). Aber OP scheint nicht wirklich zu benutzen/es wollen, wie der OP behauptet, nicht zu geben Sie einen beliebigen Benutzernamen oder das Passwort für die Kerberos-Anweisungen.
Die Lösung ist das entfernen der Kerberos/GSSAPI (
gssapi-with-mic
) aus der Liste der bevorzugten Methoden für die Authentifizierung:InformationsquelleAutor Martin Prikryl