所以我正在写一个小程序,需要通过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 用户名 [乔治]:
乔治的 Kerberos 密码:
我对这两个问题都按了 Enter 键,然后程序似乎继续运行,没有任何问题。但是,我需要通过 cron 任务自动执行此代码,因此我不想让它暂停程序来问我这两个问题。有什么我没有提供的,所以它不会问这个吗?我需要做些什么来阻止它问?希望有人有一些想法。谢谢。