Configurações de proxy salvas para SSH com várias contas da AWS

0

Eu gerencio instâncias do EC2 (máquinas virtuais) em várias contas da Amazon. As máquinas não têm necessariamente nomes de domínio; geralmente eu me conecto a eles por endereço IP.

Cada conta da AWS tem seu próprio servidor de bastiões pelo qual eu me conecto. É irritante, porque quando eu me conecto a uma máquina eu tenho que especificar as configurações para o túnel SSH na linha de comando. Se as máquinas tivessem nomes de domínio, eu apenas configuraria o encapsulamento no meu arquivo ~/.ssh/config . Em vez disso, preciso fazer isso - e o endereço IP do proxy muda dependendo da conta da AWS em que estou trabalhando:

ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]

Existe uma boa maneira de configurar o SSH, então não preciso especificar o comando do proxy (e talvez o nome do usuário)? Fico feliz em usar outra solução, como um apelido bash, se isso fizer mais sentido.

    
por z0r 31.08.2016 / 06:06

3 respostas

1

É exatamente para isso que você tem ~/.ssh/config . Não está claro quais problemas você tem com isso, mas algo como

Host proxy1
  Hostname 1.2.3.4
  User ubuntu

Host target1
  Hostname 172.17.1.2
  ProxyCommand ssh -W %h:%p proxy1
  User ubuntu

E, em seguida, conecte-se usando apenas ssh target1 . É claro que você pode combinar mais alvos com o proxy único, definir diferentes aliases ou usar curingas ( Host 172.17.1.* ) para corresponder a blocos IP inteiros.

    
por 31.08.2016 / 09:26
0

Como a opção .bashrc mencionada anteriormente também. Para algo diferente:


Modifique seu arquivo hosts para incluir nomes amigáveis como você deseja.

sudo vi /etc/hosts

Crie alguns arquivos de texto diferentes com o script ssh nele.
Crie um arquivo de texto :

sudo echo "ssh -o ProxyCommand=\"ssh -W %h:%p [email protected]\" " > your-ssh-file

Torne-o executável
sudo chmod +x your-ssh-file

Execute o arquivo na pasta que você criou com:
./your-ssh-file

    
por 31.08.2016 / 07:00
0

Eu adicionei esses aliases ao meu arquivo .bashrc :

alias ssh-foo='ssh -o ProxyCommand="ssh -W %h:%p -l ubuntu <FOO_BASTION_IP>" -l ubuntu'
alias ssh-bar='ssh -o ProxyCommand="ssh -W %h:%p -l ubuntu <BAR_BASTION_IP>" -l ubuntu'

Agora, o comando para conectar é tão simples quanto:

ssh-foo <FOO_INSTANCE_IP>

O alias para scp é semelhante, mas o nome do usuário precisa ser dado de forma diferente:

alias scp-bar='scp -o ProxyCommand="ssh -W %h:%p -l ubuntu <BAR_BASTION_IP>" -o User=ubuntu'
    
por 31.08.2016 / 06:46