1. ホーム
  2. java

[解決済み] "com.jcraft.jsch.JSchException "です。作業中のパスワードで「Auth fail

2022-02-03 12:44:03

質問

ファイルをサーバーにアップロードしようとすると、次のような例外が発生します。

    com.jcraft.jsch.JSchException: Auth fail
        at com.jcraft.jsch.Session.connect(Session.java:464)
        at com.jcraft.jsch.Session.connect(Session.java:158)
        at FtpService.transferFileToReciever(FtpService.java:80)
        at FtpService.transferFileToReciever(FtpService.java:54)
        at FtpService.transferFileToRecievers(FtpService.java:44)
        at FtpService.transferSingeFile(FtpService.java:241)
        at FtpService.main(FtpService.java:26)
    Auth fail

ソースファイルから関数transferFileToRecieverの部分は

        JSch jsch = new JSch();
        jsch.addIdentity("/root/.ssh/id_dsa");
        Session session = jsch.getSession(username, host, 22);

        session.setUserInfo(serverinfo);
        session.connect(); //geting exception here

        boolean ptimestamp = true;

パスワードはsshでログインできるので問題ないのですが、JSChでは鍵、ユーザ名、パスワードが提供されてもうまくいきません。 id_dsaキーとJavaバージョン1.6.0_25"を使用しています。 何がエラーになるのでしょうか?

他にも似たような質問がありましたが、答えはありません。 ありがとうございました。

解決方法を教えてください。

根本的な原因を探っていくと、最終的にリモートサーバーの認証キーにdsaタイプの公開キーが追加されていないことがわかりました。同じものを追加するとうまくいきました。

sshはrsaキーで動作していたので、自分のコードを振り返ってみました。

皆さん、ありがとうございました。