As substituições específicas do host do OpenSSH ~ / .ssh / config não estão funcionando

16

Tentei configurar meu ~/.ssh/configarquivo com a ajuda deste guia. No entanto, a substituição de usuário específica do host não tem efeito e o ssh tenta se conectar usando o nome de usuário global em vez do nome do host específico. Minha configuração do ssh está configurada da seguinte maneira:

$ cat ~/.ssh/config
User my_global_username

Host dev1
    HostName 10.40.10.41
    User my_username_on_dev_machines

Também tentei colocar o nome de usuário global abaixo de uma Host *entrada sem sucesso. A versão e construção do OpenSSH que estou executando é OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013 `.

andyn
fonte

Respostas:

29

Não existe um valor "global" em .ssh/config. Se você deseja ter um valor padrão, coloque-o em uma Host *seção:

Host dev1
    HostName 10.40.10.41
    User my_username_on_dev_machines

Host *
    User my_global_username

Observe a ordem: A primeira partida vence!

cran
fonte
2
Algumas perguntas de acompanhamento: 1) O comportamento mudou recentemente? O guia no site vinculado mostra claramente Host *no topo.
andyn
2) A primeira partida vence, mas aparentemente apenas para os valores que ela define explicitamente. Isso está documentado em algum lugar? O homem ssh_config não mostra nada relacionado nas seções Host ou PATTERNS.
andyn
6
A primeira frase do segundo parágrafo do ssh_config (5) diz: "Para cada parâmetro, o primeiro valor obtido será usado." Não sei se isso mudou recentemente, mas eu tinha "Host *" na parte inferior o tempo todo.
cran