la autenticación de claves SSH en su defecto al conectar esclavo Mac Hudson de dominar Linux

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

Pregunta

Ok, así que tengo Hudson (v1.393) que se ejecuta en una máquina virtual de Ubuntu y fino trabajo de todo. Sin embargo, yo estoy tratando de añadir un esclavo al maestro Mac Ubuntu y me he encontrado a algunos problemas.

Me han establecido las claves SSH para que desde la línea de comandos, el Ubuntu VM puede ssh usando la llave en un usuario llamado Hudson en el Mac.

En la configuración del esclavo Hudson, tengo "agentes de esclavos de lanzamiento en las máquinas Unix a través de SSH" seleccionados y han entrado en el host IP, nombre de usuario del usuario en el esclavo y la ubicación de mi archivo de clave privada en el maestro (que tiene ha agregado al archivo de claves autorizadas en el esclavo).

Sin embargo, el maestro no se puede conectar al esclavo. Mirando el registro (abajo), que está tratando de autenticación mediante una contraseña.

¿Es esta una posterior caída por un intento de SSH basada en una clave fallado?
Hudson es solamente intentar la autenticación mediante una contraseña, y tengo que cambiar algo más para conseguir que se utilice el archivo de claves que se define en la configuración?
Es que simplemente no es posible con los agentes de lanzamiento de esclavos a través de ssh en un mac? (Sé que el nombre de este tipo de método de lanzamiento explícitamente declara esclavo Unix, pero yo estaba pensando (es decir: la esperanza) que trabajaría con OS X también)

Iniciar sesión

[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 alguien ha logrado conquistar este tipo de montaje antes, o tiene algún consejo o ideas, yo estaría muy agradecido! Gracias

¿Fue útil?

Solución

Recientemente he topado con el mismo problema, tratando de poner en marcha un agente en un Mac OS X 10.6 máquina mediante SSH.

Para obtener la autenticación de contraseña para el trabajo que necesita para editar / etc / sshd_config en el nodo cliente, el establecimiento de PasswordAuthentication yes

En el tablero de mandos Hudson desconectar el nodo, asegúrese de que la configuración tiene un nombre de usuario y una contraseña válidos, y poner en marcha el agente. También asegúrese de que el raíz FS remoto directorio es propiedad del usuario de construcción que se está conectando como.

Para la autenticación SSH sin contraseña, compruebe primero qué usuario el maestro Hudson se está ejecutando como. Asumamos que este es tomcat55 . Generar un par de claves SSH pública / privada (con una contraseña vacía), a continuación, compruebe que el usuario puede conectar 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

En el nodo Hudson mac, las necesidades / etc / sshd_config para permitir el acceso sin contraseña.

Protocol 2
PubkeyAuthentication yes

En la configuración nodo borrar el campo de la contraseña, y establecer el campo de clave privada (en este ejemplo es /home/tomcat55/.ssh/id_rsa). Ahora debería ser capaz de lanzar el agente:

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

Otros consejos

Compruebe el archivo /var/log/auth.log en la máquina de Ubuntu. Estoy apostando que necesita para chmod 700 el directorio .ssh del usuario Hudson.

Creo que la primera respuesta (el seleccionado) es una respuesta impresionante, pero encontré un caso donde no es la única solución.

En mi caso tengo un esclavo Mac OS que estaba trabajando y luego Tomé esa Mac y llevados hasta una nueva. Pensé que sólo podía ajustar la configuración para la configuración del nodo existente para que apunte al nuevo Mac. No funcionó y tuve todos los mismos errores y problemas descritos en toda esta cadena de mensajes.

Entonces entró y se elimina el nodo y la recreó con exactamente la misma configuración y funcionó. I sospechoso que huella de la clave SSH cambiar y eliminando el nodo y volver a crearlo yo era capaz de conseguir que funcione. Sea lo que sea, el componente clave que causó el error no es una opción de configuración.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top