Porta personalizada para o cliente SSH em $ HOME / .ssh / config não funciona

2

Estou usando um arquivo de configuração para o meu cliente OpenSSH em vez de definir opções na linha de comando sempre que necessário, amostra do meu arquivo de configuração:

$ cat ~/.ssh/config

---- PARTE SUPERIOR REALIZADA AQUI ----

Host hmnw
        Hostname hmnw.mydomain.com 
        User myname
        Port 60022
        IdentityFile ~/.ssh/id_rsa

Quando tento enviar ssh para este host:

$ ssh hmnw

Não funciona.

Mas quando eu faço

$ ssh -p 60022 hmnw

Isso continua.

Por curiosidade, eu fiz strace nesse processo:

$ ssh hmnw&
$ sudo strace -p $!
connect(3, {sa_family=AF_INET, sin_port=htons(22), sin_addr=inet_addr("XX.XX.XX.XX")}, 16

Eu entendo que ele está tentando se conectar à porta SSH padrão 22.

Nota: Alterei meu nome de host e endereço IP acima.

O que estou fazendo de errado?

Minha versão do ssh

$ ssh -V
OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.2g  1 Mar 2016

Adicionando isto após a sugestão de @ muru

$ ssh -vvvv hmnw                                                            
OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /home/myname/.ssh/config
debug1: /home/myname/.ssh/config line 2: Applying options for *
debug1: /home/myname/.ssh/config line 21: Applying options for hmnw
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "hmnw.mydomain.com" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to hmnw.mydomain.com [xx.xx.xx.xx] port 22.
    
por sdkks 20.10.2016 / 05:34

1 resposta

2

Eu encontrei a peça do ofensor na configuração, é meu erro baseado em uma suposição:

Parte superior do meu arquivo ~/.ssh/config

### default for all ##
Host *
     ForwardAgent no
     ForwardX11 no
     ForwardX11Trusted yes
     User myname
     Port 2222
     Protocol 2
     ServerAliveInterval 30
     ServerAliveCountMax 120

A porta 2222 aqui estava substituindo a porta 60022 abaixo, que pertence a hmnw .

Eu removi Port 2222 de Host * , agora funciona.

Atualização: Conforme sugestão de @ muru, mover a configuração padrão de cima para baixo do arquivo config me permite usar a entrada de porta personalizada para o padrão *

@ sugestão do steeldriver Host * !hmnw também é útil, eu não tenho um caso de uso para ele ainda, mas eu posso ver que isso me permitiria negar certas configurações para um host em particular, se eu precisasse.

    
por sdkks 20.10.2016 / 08:32