Ошибка аутентификации ключа SSH при подключении Mac Hudson slave к Linux master

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

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

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

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

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

Log

[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.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 ответов


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

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

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

для аутентификации ssh без пароля сначала проверьте, какой пользователь Hudson master работает как. Предположим, что это 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

на узле Hudson mac /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.

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


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

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

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