2015-10-17 3 views
4

Я не могу подключиться к хосту SSH, используя Gradle SSH Plugin с моим личным ключом.«USERAUTH fail» с использованием gradle-ssh-plugin с идентификатором

Указание пароля в 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: USERAUTH провала в com.jcraft.jsch.UserAuthPublicKey.start (UserAuthPublicKey.java: 119)

Поскольку я могу подключиться из оболочки, что случилось с моей конфигурацией?

ответ

9

Я установил это, добавив agent = true свойство:

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

агент - Если этот параметр установлен, шпатлевка агент или SSH-агент будет использоваться на аутентификации

Для Дополнительная информация: Connections settings

Я пробовал этот прог после анализа класса UserAuthPublicKey:

if(userinfo==null) throw new JSchException("USERAUTH fail"); 
+4

У меня была та же проблема. Просто для того, чтобы уточнить, причина в том, что это работает, потому что вы используете ключ с парольной фразой. Если вы использовали секретный ключ без пароля, вам не нужен агент для аутентификации. –