Quindi sto scrivendo un piccolo programma che deve connettersi a un server remoto tramite SFTP, tirare giù un file e quindi elaborare il file. Mi sono imbattuto in JSch attraverso alcune risposte qui e sembrava perfetto per il compito. Finora, facile da usare e ho funzionato, con una cosa minore che mi piacerebbe aggiustare. Sto utilizzando il seguente codice per la connessione e tirare verso il basso il file:Connessione SFTP tramite Java che richiede un'autenticazione strana
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();
}
Quindi questo funziona e ottengo il file. Sto eseguendo questo codice su un server Linux e quando eseguo il codice JSch mi chiede il mio nome utente e password Kerberos. Sembra che:
Kerberos nome utente [George]:
password di Kerberos per George:
Ho appena premi invio per entrambe le domande e poi il programma sembra continuare senza problemi. Tuttavia ho bisogno che questo codice sia automatizzato attraverso un compito cron e quindi preferirei non averlo in pausa per farmi queste due domande. C'è qualcosa che non sto fornendo in modo che non lo chieda? Qualcosa che devo fare per smettere di chiedere? Spero che qualcuno abbia qualche idea. Grazie.
Ai posteri, thuis possono essere correlati a: https://issues.apache.org/bugzilla /show_bug.cgi?id=53437 – Aaron