ssh tunnel entre dois servidores com chaves

0

Eu tenho dois servidores, A e B, usando duas chaves diferentes. Eu trabalho no servidor A, e preciso transferir arquivos para o servidor B. Mas eu tenho problemas para transferir os arquivos, porque a conexão do servidor foi recusada quando tentei o seguinte túnel ssh;

Do servidor A:

ssh -L 1234:server_B:22 -p 45678 user_in_A@server_A

então parece que faz uma pausa, e depois de um tempo a conexão expira.

se eu scp normalmente com a minha chave como segue, então eu consigo transferir meus arquivos, então eu combino os códigos que eu uso em scp e ssh.

ssh -i key -L 1234:server_B:22 -p 45678 user_in_A@server_A

mas não funcionou.

Antes de eu fazer isso, eu pesquisei ou há uma maneira de fazer isso. Mas a maioria das respostas e explicações parece levar à ssh -L ... sem chave, então o que eu perdi aqui? talvez um conceito que eu não tenha entendido ou que esteja longe da minha marca?

    
por MayField 01.05.2018 / 13:18

1 resposta

1

Se o servidor A puder estabelecer uma conexão TCP com a porta 22 do servidor B e você estiver inserindo esses comandos no servidor A, o túnel será desnecessário.

ssh -L 1234:server_B:22 -p 45678 user_in_A@server_A

Se você estiver executando o comando no servidor A , isso significa:

  • você espera que o servidor A tenha sshd na porta 45678
  • você está fazendo uma conexão SSH do servidor A para user_in_A @ server_A
  • você também está configurando um túnel a partir da porta 1234 do servidor A para a porta 22 do servidor B, isto é, o sshd do servidor A estará configurando um proxy TCP na porta 1234 no servidor A e encaminhando a (s) conexão (ões) para na porta 22 do servidor B.

Como a conexão SSH é do servidor A para o servidor A, a parte criptografada do túnel estará totalmente dentro do servidor A e, portanto, praticamente inútil. Se o túnel funcionar, isso significa que você pode simplesmente usar scp para transferir arquivos sem fazer o túnel:

scp -i key_for_user_in_B /some/where/local/files user_in_B@server_B:

ou

scp -i key_for_user_in_B user_in_B@server_B:/some/remote/path /some/local/path/

O primeiro irá "empurrar" arquivos de local (A) para B, o segundo "puxará" arquivos de B para local (A).

    
por 01.05.2018 / 13:50