sftp através de outro servidor ssh (como proxy)

0

Quando eu acesso um servidor da minha rede local, eu primeiro tenho que conectar ao meu servidor principal (todas as portas vão para esta máquina) e quando estou no meu servidor principal, eu tenho que conectar a minha próxima máquina (que só está disponível na minha rede local).

Exemplo:

name@mylaptop:~$ ssh [email protected]
[Entering Password]
Logged in
name@mainserver:~$ ssh 192.168.0.1
[Entering password]
Logged in
name@otherserver:~$

O que eu quero fazer agora é conectar com o FileZilla ao servidor principal e "proxiyng" ao "otherserver". Como posso dizer ao FileZilla para usar um comando no começo? Ou isso é possível?

    
por danbru1211 08.09.2013 / 20:52

2 respostas

2

Eu sei que esta pergunta foi feita há alguns meses atrás - mas ao procurar por respostas para um requisito semelhante, achei muito útil o uso do ProxyCommand do OpenSSH.

Eu tenho algo como a seguinte configuração no meu arquivo de configuração do cliente local (na verdade, eu precisava de três saltos para chegar ao meu destino: servidor externo - > roteador - > caixa de destino na rede privada)

In file ~/.ssh/config

Host myexternalserver
  User username1
  IdentityFile <key file for username1@myexternalserver>
  Hostname myexternalserver.fully.qualified.name

Host myrouter
  Hostname myrouter.fully.qualified.name
  User root
  IdentityFile <key file for root@myrouter>
  ProxyCommand ssh -q myexternalserver nc %h %p

Host mytarget
  Hostname mytarget.private.name
  User username2
  IdentityFile <key file for username2@mytarget>
  ProxyCommand ssh -q myrouter nc %h %p

Essa cadeia significa que eu posso digitar

ssh mytarget

e ser enviado através dos saltos necessários.

Todos os arquivos de chave são armazenados localmente para que você não precise colocar arquivos em servidores externos. A mesma configuração funciona mesmo para o scp:

scp <localfile> mytarget:<remotepath>

Uma série de abordagens alternativas para o proxy ssh estão documentadas na seguinte página do wikibooks: link

    
por 05.02.2014 / 14:49
0

Você pode configurar a porta para o seu servidor interno.

name@mainserver:~$ sudo iptables -t nat -A PREROUTING -i <outward facing interface> -p tcp --dport 2222 -j DNAT --to-dest <other server's ip>:22

Isso encaminharia as conexões de entrada na porta 2222 no servidor principal para a porta 22 no servidor interno. Em seguida, basta conectar-se a example.com na porta 2222.

Outra opção é usar o encaminhamento de porta SSH.

name@mylaptop:~$ ssh [email protected] -L 2222:<other server's IP>:22

Contanto que esta sessão SSH esteja aberta, a porta 2222 em seu computador local roteará para a porta 22 no servidor interno. Então você se conectaria ao localhost na porta 2222.

    
por 09.09.2013 / 00:35

Tags