Qual comando do ssh eu usaria para configurar o "backwards listening"?

0

A máquina A está atrás de um firewall. Eu tenho acesso físico a ele, mas quero fazer login remotamente e não tenho acesso às configurações do firewall.

A Máquina B é remota e não está atrás de nenhum firewall. (É meu linode)

A máquina C é o dispositivo móvel que eu tentarei usar em A.

Existe um comando ssh que eu posso executar a partir da máquina A que se conecta à máquina B e permanece aberta, o que me permitirá entrar em A de C, via B?

Do manual eu acho que seria para executar o follwing em A

ssh -R *:9999:localhost:22 me@B

e, em seguida, execute isso em C

ssh me@B -p 9999

mas o comando anterior informa "Conexão recusada".

    
por Nathan 07.03.2012 / 19:02

1 resposta

2

Para poder acessar a Máquina A (atrás do firewall) da Máquina C através da Máquina B intermediária (firewall externo), faça o seguinte:

Na máquina A:

ssh -2 -N -l [acct on B] -g -R 4001:localhost:22 MachineB

'- g' pode ou não ser requerido. É isso que eu uso. Você pode escolher qualquer porta além de '4001'.

Em seguida, na Máquina B:

ssh -p4001 -g -L 9999:machineA:22 localhost

Note que 'machineA' também pode ser '127.0.0.1'. Não tem 100% de certeza - experimente.
'-g' também disponibiliza a porta 9999 para outras máquinas externas à Máquina B.
Omitir '-g' disponibiliza a porta 9999 apenas para outros processos na Máquina B.

Em seguida, na Máquina C:

ssh -p9999 me@MachineB

Voila!

Você também pode acessar outra máquina, D, na rede de A a partir de C. Faça isso no MachineB:

ssh -p4001 -g -L 9999:[some machine on MachineA's network]:[some port] localhost

Isso permite que você acesse uma porta em outra máquina na rede do MachineA.

Portanto, se houver uma máquina D, também atrás do firewall na mesma rede que fica ao lado da Máquina A, você poderá acessá-la da Máquina C como se estivesse na Máquina A.

Por exemplo, se a Máquina D for uma caixa do Windows Server e você quiser usar a Área de Trabalho Remota da Máquina C, que também é uma Caixa do Windows, para a Máquina D, faça o seguinte:

Máquina A:

ssh -2 -N -l [acct on B] -g -R 4001:localhost:22 MachineB 

(isso é o mesmo)

Máquina B:

ssh -p4001 -g -L 9999:machineD:3389 localhost

Máquina C: ative o cliente RDP e conecte-se a MachineB:9999

BAM! Você está conectado à Caixa do Windows Server (Máquina D) da Máquina C.

    
por 08.04.2012 / 07:30