É possível conectar essas máquinas com túneis ssh ou outro mecanismo?

1

Estou fisicamente em uma máquina que está atrás de um firewall e não pode ser ssh em. Vamos chamar esse PC. O PC pode se conectar a duas máquinas, uma na AWS e outra que faz parte de uma conexão vpn, chamá-las de A e V, respectivamente. A e V não podem falar diretamente entre si. Eu preciso mover frequentemente arquivos entre A e V e tenho feito isso scp'ing para PC e scp'ing do pc. Existe uma maneira melhor de fazer isso? A e V são linux mas o PC tem cygwin.

    
por frankc 12.11.2013 / 15:23

1 resposta

1

Sim, isso pode ser feito.

1) verifique se você configurou ssh sem senha em todas as três máquinas, isto é, , usando chaves criptográficas;

2) downlaod o pacote autossh no PC da máquina; Em seguida, crie um arquivo chamado auto1 com este conteúdo:

 #!/bin/sh
 /usr/lib/autossh/autossh -M 6521 -f -p SSH_PORT_OF_A -2 -N -D -R 8100:localhost:SSH_PORT_OF_PC Your_Name@A's_IP_Address -i /path/to/A's/private/key

e outro arquivo chamado auto2 com conteúdo equivalente:

 #!/bin/sh
 /usr/lib/autossh/autossh -M 6521 -f -p SSH_PORT_OF_V -2 -N -R 8100:localhost:SSH_PORT_OF_PC Your_Name@A's_IP_Address -i /path/to/A's/private/key

torne esses dois arquivos executáveis,

  chmod 755 auto1
  chmod 755 auto2

e agora adicione a seguinte linha ao /etc/rc.local:

 /PATH/TO/auto1
 /PATH/TO/auto2

O que isto faz é começar no boot autossh , um programa inteligente que mantém o re-início do ssh se ele estiver desconectado; a conexão ssh é um túnel reverso, todas as conexões para localhost: 8100 em A e V são automaticamente encaminhadas para a porta do PC que eu chamei SSH_PORT OF_PC, você deve substituir seus valores por isso e por SSH_PORT_OF_A, SSH_PORT_OFV.

Cuidado : você já deve ter se conectado via ssh a essas duas máquinas anteriormente, isto é, deve haver uma troca de chaves.

3) Coloque as chaves criptográficas privadas de A e V em /home/Your_Name/.ssh.

4) Agora você pode conectar de A (ou V) ao PC por meio de

 ssh  Me_at_PC@localhost -p 8100 -i /path/to/PC'sPrivateKey

5) Mas você também pode pular de A para V via PC assim:

ssh  -t Me_at_PC@localhost -p 8100 -i /path/to/PC'sPrivateKey ssh -t Me_at_V@V's_IP_address -p SSH_PORT_OF_V -i /home/My_name_On_VG/.ssh/PrivateKeyOfV

and viceversa, 

ssh  -t Me_at_PC@localhost -p 8100 -i /path/to/PC'sPrivateKey ssh -t Me_at_A@A's_IP_address -p SSH_PORT_OF_A -i /home/My_name_On_VG/.ssh/PrivateKeyOfA

6) Isso pode ser simplificado, seja pela designação de aliases para esses dois comandos longos ou pelo aprendizado de como usar a opção ProxyCommand de ssh.

7) Enquanto esta configuração funciona literalmente para mim, isso pode ser porque há uma pequena coisa que eu tomo como certo no meu sistema, mas que está faltando na sua. Esteja preparado para fazer um pouco de depuração.

    
por 12.11.2013 / 16:45

Tags