SSH com um host bastion e diferentes nomes de usuários

3

Eu quero entrar em um servidor linux usando dois hosts bastiões sequenciais. Meu arquivo .ssh/config é parecido com isto:

Host *
  User username0
Host hostname0
  Hostname foo
Host hostname1
  Hostname bar
  Port 0
  ProxyCommand ssh -W %h:%p hostname0
Host hostname2
  User username2
  Hostname bat
  Port 1
  ProxyCommand ssh -W %h:%p hostname1

Meu nome de usuário em hostname0 e hostname1 é username0 , mas meu nome de usuário em hostname2 é username2 .

As entradas para hostname0 e hostname1 funcionam conforme o esperado. Mas a entrada para hostname2 parece ignorar a opção User .

ssh hostname2 faz com que isso seja exibido:

username0@hostname2's password:

Se eu alterar o ProxyCommand para hostname2 para ssh -l username2 -W %h:%p hostname1 , ele me pedirá a senha para username2 @ hostname1. username2@hostname1's password , o que faz sentido, pois estou pedindo para ele fazer login em hostname1 as username2 , mas obviamente não funciona, pois meu nome de usuário é na verdade username0 .

Como posso configurar o ssh para usar o nome de usuário correto em cada situação?

    
por moriarty-s3A 07.09.2016 / 22:42

1 resposta

1

Use uma ordem diferente dos blocos Host . O Host * corresponde a tudo e ssh_config não sobrescreve entradas já armazenadas:

Host hostname0
  Hostname foo
Host hostname1
  Hostname bar
  Port 0
  ProxyCommand ssh -W %h:%p hostname0
Host hostname2
  User username2
  Hostname bat
  Port 1
  ProxyCommand ssh -W %h:%p hostname1
Host *
  User username0

Mover o Host * para o final fará com que funcione novamente.

    
por 08.09.2016 / 15:50