Execute o comando sobre dois saltos ssh

0

Seguindo as melhores práticas da AWS , criei uma infra-estrutura para a qual Eu ssh através de uma caixa de bastion:

localhost → bastion → target server

Para se conectar ao servidor de destino, eu tenho keyfiles no localhost e na caixa de bastion, e então eu uso o ssh para hop da seguinte forma:

localhost > ssh -i key.pem bastion
bastion > ssh -i key.pem target

Parece que esta questão está relacionada . Como executo um comando no servidor de destino diretamente do host local?

    
por Jens 14.08.2018 / 16:03

1 resposta

1

Você precisa usar o ProxyCommand em sua configuração de SSH. Então, caso você não tenha configurado seu ~/.ssh/config , eu diria aqui

Então, você gostaria de fazer o seguinte:

  1. Coloque o bastião como um Agente de encaminhamento na sua configuração de SSH.

  2. Use ProxyCommand para fazer proxy de sua conexão do bastião para o servidor de destino.

Aqui está um exemplo rápido:

Host <bastion>
    ForwardAgent yes

Host <target_server>
        User <user>
        Hostname <Ip/Hostname>
        ProxyCommand ssh -q -W %h:%p <user>@<bastion> nc 2> /dev/null
        IdentityFile ~/.ssh/id_rsa
    
por 14.08.2018 / 16:13

Tags