Java で SSH 接続を確立するためにJschを使用しようとしています。コードによって次の例外が発生します。
com.jcraft.jsch.JSchException: UnknownHostKey: mywebsite.example.
RSA key fingerprint is 22:fb:ee:fe:18:cd:aa:9a:9c:78:89:9f:b4:78:75:b4
Jsch ドキュメントでホスト キーを確認する方法が見つかりません。以下にコードを記載しました。
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class ssh {
public static void main(String[] arg) {
try {
JSch jsch = new JSch();
//create SSH connection
String host = "mywebsite.example";
String user = "username";
String password = "123456";
Session session = jsch.getSession(user, host, 22);
session.setPassword(password);
session.connect();
} catch(Exception e) {
System.out.println(e);
}
}
}
ベストアンサー1
私なら、次のいずれかを行います:
- コマンドラインから試して
ssh
公開キーを受け入れてください(ホストが追加され~/.ssh/known_hosts
、Jsch からすべてが正常に動作するはずです)-または- 次のコードを使用して、JSch が「StrictHostKeyChecking」を使用しないように設定します (これにより安全性が損なわれるため、テスト目的でのみ使用する必要があります)。
java.util.Properties config = new java.util.Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config);
オプション 1 (ファイルにホストを追加する~/.ssh/known_hosts
) が私の好みです。