通过 Java 的 SFTP 连接,要求进行奇怪的身份验证
所以我正在编写一个小程序,需要通过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]:
乔治的克贝罗斯密码:
我只是为这两个问题都按了enter键,然后程序似乎继续运行,没有问题。但是,我需要通过cron任务自动执行此代码,因此我宁愿不让它暂停程序来问我这两个问题。有没有我没有提供的东西,所以它不会问这个?我需要做些什么来阻止它问?希望有人有一些想法。谢谢。