Rapidamente SSH em outra caixa sobre SSH [duplicado]

8

Eu preciso fazer upload e compilar coisas em uma máquina remota que só pode ser acessada dentro de uma rede específica que eu possa acessar através do SSH.

Por exemplo, eu executo os seguintes passos:

me@mymachine$ ssh user@network_gateway
user@network_gateway$ ssh seconduser@targetmachine
seconduser@targetmachine$ #do stuff

Existe uma maneira de tornar minha máquina local ciente do encapsulamento sem passar pelo problema de se conectar ao gateway de rede toda vez?

    
por mightyuhu 22.03.2014 / 21:51

3 respostas

17

Você pode configurar seu .ssh/config para fornecer um túnel automaticamente para o targetmachine . Para que isso funcione sem o uso de senhas, é necessário configurar a autenticação de chave pública em ambos os hosts e o encaminhamento de agentes no gateway.

Configure-o para que uma conexão com targetmachine seja intermediada por proxy por network_gateway :

Host targetmachine
  HostName targetmachine.company.com
  ProxyCommand ssh network_gateway -W %h:%p

Então você pode emitir:

$ ssh targetmachine

para se conectar diretamente. Há mais informações na% man_de% manpage.

    
por 22.03.2014 / 22:56
2

O SSH tomará um comando para ser executado na máquina remota. Por exemplo, para SSH no server2 via server1:

ssh alice@server1 "ssh bob@server2"

Em seguida, você poderá digitar comandos no prompt do server2.

Se você quiser ficar ainda mais chique, anexe-os:

ssh alice@server1 "ssh bob@server2 \"cd myproject && git pull origin master && make all\""
    
por 22.03.2014 / 21:59
2

Você pode usar um script como ssh-chain para facilitar sua vida.

Não faz ideia se suporta transferências de sftp, no entanto.

    
por 22.03.2014 / 22:14

Tags