Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"USERAUTH fail" using gradle-ssh-plugin with identity

I can't connect to a SSH host using the Gradle SSH Plugin with my private key.

Specifying the password in the build.gradle works fine:

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

But to avoid writing my password in the build file, I've set my environment to connect using my private key without entering the password from shell:

ssh <user>@<ip>

This command works from the shell but I can't achieve this with the Gradle plugin. This is my configuration:

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

The error is:

Caused by: com.jcraft.jsch.JSchException: USERAUTH fail at com.jcraft.jsch.UserAuthPublicKey.start(UserAuthPublicKey.java:119)

Since I'm able to connect from the shell, what's wrong with my configuration?

like image 554
Denis C de Azevedo Avatar asked Dec 04 '22 02:12

Denis C de Azevedo


1 Answers

I fixed this by adding the agent = true property:

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

agent - If this is set, Putty Agent or ssh-agent will be used on authentication

For more information: Connections settings

I tried this property after analyzing the class UserAuthPublicKey:

if(userinfo==null) throw new JSchException("USERAUTH fail");
like image 98
Denis C de Azevedo Avatar answered Dec 11 '22 12:12

Denis C de Azevedo