Сбой аутентификации по ключу SSH при подключении подчиненного Mac Hudson к мастеру Linux - PullRequest
7 голосов
/ 17 января 2011

Хорошо, у меня Hudson (v1.393) работает на виртуальной машине Ubuntu, и все работает нормально. Однако я пытаюсь добавить ведомого Mac к мастеру Ubuntu и столкнулся с несколькими проблемами.

Я настроил SSH-ключи так, чтобы из командной строки виртуальная машина Ubuntu могла ssh с помощью ключа войти в пользователя с именем hudson на Mac.

В конфигурации подчиненного Hudson я выбрал «Запустить подчиненные агенты на машинах Unix через SSH» и ввел IP-адрес хоста, имя пользователя пользователя на ведомом устройстве и местоположение моего файла личного ключа на главном сервере (который был добавлен в файл авторизованных ключей на ведомом устройстве.

Однако ведущему не удается подключиться к ведомому. Глядя на журнал (ниже), он пытается аутентифицироваться с помощью пароля.

Является ли это запасным вариантом неудачной попытки SSH на основе ключа?
Хадсон только пытается подтвердить подлинность, используя пароль, и мне нужно изменить что-то еще, чтобы заставить его использовать файл ключа, который определен в конфигурации?
Разве невозможно запустить подчиненные агенты через ssh на Mac? (Я знаю, что название этого типа подчиненного метода запуска подробно объясняет Unix, но я думал (читай: надеясь), что он будет работать и с OS X)

Журнал

[01/14/11 10:38:07] [SSH] Opening SSH connection to 10.0.1.188:22.
[01/14/11 10:38:07] [SSH] Authenticating as hudson/******.
java.io.IOException: Password authentication failed.
at com.trilead.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:319)
at com.trilead.ssh2.Connection.authenticateWithPassword(Connection.java:314)
at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:565)
at hudson.plugins.sshslaves.SSHLauncher.launch(SSHLauncher.java:179)
at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:184)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)
Caused by: java.io.IOException: Authentication method password not supported by the server at this stage.
at com.trilead.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:289)
... 9 more
[01/14/11 10:38:07] [SSH] Connection closed.

Если кто-нибудь уже успел покорить этот тип установки или у него есть какие-либо советы или идеи, я был бы очень признателен! Спасибо

Ответы [ 3 ]

16 голосов
/ 20 января 2011

Недавно я столкнулся с той же проблемой, пытаясь запустить агент на компьютере Mac OS X 10.6 с использованием SSH.

Чтобы заставить работать аутентификацию по паролю, вам нужно отредактировать / etc / sshd_config на клиентском узле, установив PasswordAuthentication yes

В панели управления Hudson переведите узел в автономный режим, убедитесь, что в конфигурации указаны правильные имя пользователя и пароль, и запустите агент. Также убедитесь, что корневой каталог Remote FS принадлежит пользователю сборки, к которому вы подключаетесь.

Для аутентификации ssh без пароля сначала проверьте, под каким пользователем работает мастер Hudson. Предположим, что это tomcat55 . Сгенерируйте пару открытых / закрытых ключей SSH (с пустой парольной фразой), а затем убедитесь, что пользователь Hudson может подключиться.

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tomcat55/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/tomcat55/.ssh/id_rsa.
Your public key has been saved in /home/tomcat55/.ssh/id_rsa.pub.

$ # authorize the hudson master on the hudson node
$ scp /home/tomcat55/.ssh/id_rsa.pub hudson@macnode:~/.ssh/authorized_keys
$ # test the connection
$ ssh -i /home/tomcat55/.ssh/id_rsa hudson@macnode

На Mac-узле Hudson в / etc / sshd_config должен быть разрешен доступ без пароля.

Protocol 2
PubkeyAuthentication yes

В конфигурации узла очистите поле пароля и установите поле личного ключа (в данном примере это /home/tomcat55/.ssh/id_rsa). Теперь вы сможете запустить агент:

[01/19/11 22:38:44] [SSH] Opening SSH connection to macnode:22.
[01/19/11 22:38:44] [SSH] Authenticating as hudson with /home/tomcat55/.ssh/id_rsa.
[01/19/11 22:38:45] [SSH] Authentication successful.
2 голосов
/ 17 января 2011

Проверьте файл /var/log/auth.log на компьютере с Ubuntu. Могу поспорить, что вам нужен chmod 700 каталог .ssh пользователя hudson.

1 голос
/ 15 августа 2012

Я думаю, что первый ответ (выбранный) - это отличный ответ, но я нашел случай, когда это не единственное решение.

В моем случае у меня работал подчиненный Mac OSа потом я снял этот Mac и поднял новый.Я подумал, что могу просто настроить параметры конфигурации существующего узла, чтобы он указывал на новый Mac.Это не сработало, и у меня были все те же ошибки и проблемы, описанные в этой ветке сообщений.

Затем я вошел и удалил узел и заново создал его с точно такими же настройками, и он работал.Я подозреваю , что отпечаток ключа SSH изменился и, удалив узел и воссоздав его, я смог заставить его работать.Как бы то ни было, ключевой компонент, вызвавший его сбой, не является параметром конфигурации.

...