4

秘密鍵でGradle SSH プラグインを使用して SSH ホストに接続できません。

build.gradle正常に動作するようにパスワードを指定します。

remotes {
    webServer {
        host = '<IP>'
        user = '<USER>'
        password = '<PASSWORD>'
    }
}

ただし、ビルド ファイルにパスワードを書き込まないようにするために、シェルからパスワードを入力せずに秘密鍵を使用して接続するように環境を設定しました。

ssh <user>@<ip>

このコマンドはシェルから機能しますが、Gradle プラグインではこれを実現できません。これは私の構成です:

remotes {
    webServer {
        host = '<IP>'
        user = '<USER>'
        identity = file("${System.getProperty('user.home')}/.ssh/id_rsa")
    }
}

エラーは次のとおりです。

原因: com.jcraft.jsch.JSchException: com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:119) で USERAUTH が失敗する

シェルから接続できるようになったのですが、構成の何が問題になっていますか?

4

2 に答える 2

15

プロパティを追加してこれを修正しましたagent = true

remotes {
    webServer {
        host = '54.233.77.171'
        user = 'denis'
        agent = true
        identity = file("${System.getProperty('user.home')}/.ssh/id_rsa")
    }
}

agent - これが設定されている場合、Putty Agent または ssh-agent が認証に使用されます

詳細情報:接続設定

クラスUserAuthPublicKeyを分析した後、このプロパティを試しました。

if(userinfo==null) throw new JSchException("USERAUTH fail");
于 2015-10-17T21:56:22.093 に答える