ssh para uma máquina específica dentro de uma rede [duplicada]

4

Freqüentemente, estou transferindo arquivos e programas operacionais por meio de ssh e, frequentemente, de casa. A máquina em que normalmente trabalho é uma área de trabalho que não posso ssh diretamente, a menos que eu já esteja conectado à rede do departamento. Assim, se estou em casa, devo ssh para a rede do meu departamento primeiro e depois para a minha área de trabalho, ou seja,

ssh username@departmentnetwork e depois ssh username@desktop-departmentnetwork

Esta configuração significa que, para transferir arquivos de casa, devo scp dos arquivos para minha unidade na rede do departamento, ssh para a rede do departamento e, em seguida, scp dos arquivos para a minha área de trabalho .

Existe uma maneira de usar qualquer ou todos os ssh , scp e sshfs para se conectar a uma 'rede dentro de uma rede'?

    
por Moriarty 22.07.2013 / 02:58

2 respostas

5

Você pode usar o ProxyCommand que você pode configurar ssh para que ele se conecte a um sistema "gateway" e então se conecte a um sistema secundário que está por trás do sistema "gateway".

Host internal-host
    User sam
    IdentityFile ~/.ssh/id_rsa
    ProxyCommand ssh user@gateway nc internal-host.somedom.com %p

Esta técnica faz uso da ferramenta nc para atuar como um conector. A forma como funciona é totalmente abordada aqui neste artigo intitulado: SSH Multi-hop transparente .

O outro truque que uso é adicionar um ControlMaster à minha configuração para que, uma vez autenticado, eu possa "reciclar" isso e não ter que continuar a autenticar conexões adicionais.

Host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p

Muitos hosts

Se você tiver vários hosts internos, poderá usar variáveis especiais que estão disponíveis para você no arquivo ~/.ssh/config para selecionar o nome do host ( %h ) e porta ( %p ).

Host host1 host2 host3
  User          internal-user
  ProxyCommand  ssh [email protected] nc %h %p

Isso permitirá que você ssh host1 do seu sistema e se conecte ao host1.

Referências

por 22.07.2013 / 03:17
1

O método @slm sugerido é um bom método. Se você quiser aprender um outro método que pode ser feito pelo túnel ssh também:

ssh -t -l gatewayuser -L9997:127.0.0.1:9998 gatewayserver "ssh -l serveruser -D9998 -N internalserver"

Por favor, ignore o pobre diagrama:)

    
por 22.07.2013 / 09:03

Tags