ssh config de Ubuntu 12.04 no funciona en 14.04.4

Configuré un nuevo server Ubuntu 14.04.4 para replace una máquina 12.04, pero el nuevo server está teniendo problemas con la antigua configuration de ssh. Puedo enviar ssh sin la configuration, e incluso puedo enviar ssh a través de un server de bastión sin problemas desde la command-line. Por ejemplo,

ssh -o ProxyCommand="ssh -W %h:%p bastion.my.company.com" lab123.my.company.com 

Pero si creo un file /home/myname/.ssh/config con la siguiente configuration, estoy teniendo problemas.

 ServerAliveInterval 150 ServerAliveCountMax 6 ControlMaster auto ControlPath /tmp/ssh_%h_%p_%r Host *.my.company.com User myname IdentityFile /home/myname/.ssh/mykey.pem ProxyCommand ssh bastion -W %h:%p ForwardAgent yes Host bastion Hostname bastion.my.company.com User myname IdentityFile /home/myname/.ssh/mykey.pem 

Cuando bash usar ssh con la configuration anterior, obtengo cientos de processs ssh como los siguientes:

 myname 29855 29854 0 12:24 pts/6 00:00:00 ssh bastion -W bastion.my.company.com:22 myname 29856 29855 0 12:24 pts/6 00:00:00 ssh bastion -W bastion.my.company.com:22 myname 29857 29856 0 12:24 pts/6 00:00:00 ssh bastion -W bastion.my.company.com:22 myname 29858 29857 0 12:24 pts/6 00:00:00 ssh bastion -W bastion.my.company.com:22 

ssh solo se cuelga hasta que presiono Ctrl + C , y luego todos los processs ssh mueren.

Un rastro de las últimas líneas de cada process se ve así:

 .... write(4, "SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2"..., 43) = 43 read(5, 0xbfe08efc, 1) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) --- SIGINT {si_signo=SIGINT, si_code=SI_KERNEL} --- +++ killed by SIGINT +++ 

Una mirada hacia arriba en el trazado muestra que los manejadores de file son de los siguientes:

 ... socket(PF_LOCAL, SOCK_STREAM, 0) = 3 connect(3, {sa_family=AF_LOCAL, sun_path="/tmp/ssh_bastion.my.company.com_22_myname"}, 57) = -1 ENOENT (No such file or directory) close(3) = 0 pipe([3, 4]) = 0 pipe([5, 6]) = 0 .. 

Parece extraño que no haya ningún file de socket en / tmp, y no hay enlace en el seguimiento.

La solución fue proporcionada en un comentario de steeldriver, quien sugirió que excluyera bastion.my.company.com de la coincidencia de host con comodines.

Por ejemplo,

 ServerAliveInterval 150 ServerAliveCountMax 6 ControlMaster auto ControlPath /tmp/ssh_%h_%p_%r Host *.my.company.com !bastion.my.company.com User myname IdentityFile /home/myname/.ssh/mykey.pem ProxyCommand ssh bastion -W %h:%p ForwardAgent yes Host bastion Hostname bastion.my.company.com User myname IdentityFile /home/myname/.ssh/mykey.pem 

ControlPath /tmp/ssh_%h_%p_%r

Esta es una idea bastante mala para poner sus tomas de control en el "td accesible al público". Debería estar en algún directory seguro, donde ningún otro usuario pueda acceder.

El comportamiento parece que hubo un cambio pnetworkingeterminado de CanonicalizeHostname . ¿Qué opción pnetworkingeterminada tiene esta opción en su sistema? Intente desactivarlo: CanonicalizeHostname no .

Establecer LogLevel DEBUG3 también es un buen comienzo con problemas de debugging con ssh . ¿Puedes configurar esta opción en tu configuration y publicar los loggings?