jsch.setKnownHosts("path_to_known_hosts")で、フィンガープリントを教えてあげると接続してくれる
public static void main(String args) {
Session session = null;
Channel channel = null;
ChannelSftp channelSftp = null;
try(InputStream input = fileService.loadFile("filePath") {
JSch jsch = new JSch();
jsch.addIdentity("key_to_prv_key_path"); // 秘密鍵指定
jsch.setKnownHosts("~/.ssh/known_hosts"); // ←これ
session = jsch.getSession(user, hostname, port);
// このやりかたはなぜかうまくいかなかった
// Properties config = new Properties();
// config.setProperty("StringHostKeyChecking", "no");
// session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp) channel;
channelSftp.put(input, "fileName");
} finally {
channelSftp.exit();
channel.disconnect();
session.disconnect();
}
}
##参考