SSH authentification par clé à défaut lors de la connexion esclave Mac Hudson à maîtriser Linux

StackOverflow https://stackoverflow.com/questions/4715393

Question

Ok, donc je Hudson (v1.393) en cours d'exécution dans une machine virtuelle Ubuntu et va bien tout fonctionne. Cependant, je suis en train d'ajouter un esclave Mac au maître Ubuntu et j'ai couru pour quelques problèmes.

J'ai mis en place les clés SSH de sorte que de la ligne de commande, la machine virtuelle Ubuntu peut ssh en utilisant la clé dans un utilisateur appelé hudson sur le Mac.

Dans la configuration esclave Hudson, je « lancer des agents esclaves sur les machines Unix via SSH » sélectionnés et ont entré l'adresse IP hôte, nom d'utilisateur de l'utilisateur sur l'esclave et l'emplacement de mon fichier clé privée sur le maître (qui a été ajoutés au fichier de clés autorisées sur l'esclave).

Cependant, le maître ne parvient pas à se connecter à l'esclave. En regardant le journal (ci-dessous), il essaie d'authentifier en utilisant un mot de passe.

Est-ce un retour à l'automne pour une tentative SSH par clé échoué?
Est-ce que Hudson tentative d'authentification en utilisant un mot de passe, et je dois changer quelque chose d'autre pour l'obtenir à utiliser le fichier clé qui est défini dans la configuration
Est-il tout simplement pas possible de lancer des agents esclaves via ssh sur un Mac? (Je connais le nom de ce type de méthode de lancement esclave explicity déclare Unix, mais je pensais (lire: en espérant) qu'il travaillerait avec OS X aussi)

Connexion

[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.

Si quelqu'un a réussi à conquérir ce type de mise en place avant, ou a des conseils ou des idées, je serais très reconnaissant! Merci

Était-ce utile?

La solution

Je l'ai récemment exécuté dans le même problème, en essayant de lancer un agent sur une machine Mac OS X 10.6 en utilisant SSH.

Pour obtenir l'authentification par mot de passe au travail, vous devez modifier / etc / sshd_config sur le poste client, la mise en PasswordAuthentication yes

Dans le tableau de bord Hudson prendre le noeud hors ligne, assurez-vous que la configuration a un nom d'utilisateur et mot de passe, et lancer l'agent. Assurez-vous également que le root à distance FS répertoire appartient à l'utilisateur de construire vous vous connectez comme.

Pour un mot de passe d'authentification moins ssh, vérifiez d'abord que l'utilisateur maître Hudson fonctionne comme. Laisse supposer que c'est tomcat55 . Générer une clé SSH publique / privée paire (avec un mot de passe vide), puis vérifiez que l'utilisateur peut se connecter 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

Sur le nœud mac Hudson, le fichier / etc / besoins de sshd_config pour permettre un accès sans mot de passe.

Protocol 2
PubkeyAuthentication yes

Dans la configuration de noeud effacer le champ de mot de passe et définissez le champ clé privée (dans cet exemple, il est /home/tomcat55/.ssh/id_rsa). Vous devriez maintenant être en mesure de lancer l'agent:

[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.

Autres conseils

Vérifiez le fichier /var/log/auth.log sur la machine Ubuntu. Je parie que vous devez chmod 700 le répertoire .ssh de l'utilisateur hudson.

Je pense que la première réponse (celle choisie) est une réponse impressionnante, mais j'ai trouvé un cas où il n'est pas la seule solution.

Dans mon cas, j'ai un esclave Mac OS qui fonctionnait et je pris que Mac vers le bas et élevé un nouveau. Je pensais que je pouvais modifier les paramètres de la configuration du nœud existant pour le diriger vers le nouveau Mac. Il n'a pas fonctionné et j'ai eu tous les mêmes erreurs et les problèmes décrits tout au long de ce fil de message.

Alors je suis allé et a supprimé le nœud et recréée avec exactement les mêmes paramètres et cela a fonctionné. I suspect cette empreinte de clé SSH changé et en supprimant le nœud et le recréer j'ai pu le faire fonctionner. Quoi qu'il en soit, l'élément clé qui a causé l'échec n'est pas une option de configuration.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top