Eu configurei um novo servidor Ubuntu 14.04.4 para substituir uma máquina 12.04, mas o novo servidor está tendo problemas com a configuração ssh antiga. Eu posso ssh sem a configuração, e pode até mesmo ssh através de um servidor de bastiões sem nenhum problema a partir da linha de comando. Por exemplo,
ssh -o ProxyCommand="ssh -W %h:%p bastion.my.company.com" lab123.my.company.com
Mas, se eu criar um arquivo /home/myname/.ssh/config
com as configurações a seguir, estou com 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
Quando tento usar o ssh com a configuração acima, recebo centenas de processos ssh como os seguintes:
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
apenas trava até eu pressionar Ctrl + C , e então todos os processos ssh morrem.
Um traço das últimas linhas de todos os processos se parece com:
....
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 +++
Uma olhada mais adiante no rastreio mostra que as alças de arquivo são as seguintes:
...
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 estranho que não haja nenhum arquivo de soquete em / tmp e não haja ligação no rastreio.