Итак, я пишу небольшую программу, которая должна подключаться к удаленному серверу через SFTP, вытаскивать файл, а затем обрабатывать файл. Я наткнулся на JSch через некоторые ответы здесь, и это выглядело прекрасно для этой задачи. До сих пор прост в использовании, и у меня это работает, с одной незначительной задачей, которую я хотел бы исправить. Я использую следующий код для подключения и вытягивания файла:
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();
}
Итак, это работает, и я получаю файл. Я запускаю этот код на сервере linux, и когда я запускаю код, JSch спрашивает у меня имя пользователя и пароль Kerberos. Это выглядит так:
Имя пользователя Kerberos [george]:
Пароль Kerberos для george:
Я просто нажал кнопку ввода для обоих вопросов, а затем программа, похоже, продолжится без проблем. Однако мне нужно, чтобы этот код был автоматизирован с помощью задачи cron, поэтому я предпочел бы не останавливать программу, чтобы задать мне эти два вопроса. Есть ли что-то, что я не поставляю, чтобы он не спросил об этом? Что-то мне нужно сделать, чтобы он не спросил? Надеюсь, у кого-то есть идеи. Спасибо.