Como faço para conectar a um pc através de outro pc usando ssh

11

Tenho três computadores.

PC1 e PC2 estão em uma LAN privada, onde PC1 é conhecido como PC2 como 192.168.0.2

PC2 e PC3 estão em outra LAN, onde PC2 é conhecido como PC3 como 192.168.123.101

Como posso me conectar ao PC1 do PC3 com o SSH.

Existe algo como:

ssh [email protected] -via [email protected]
    
por Stefan 14.09.2010 / 21:54

4 respostas

18
ssh -o 'ProxyCommand ssh -W %h:%p [email protected]'

Você pode simplesmente executar ssh PC1 .

Melhor usado por meio de um alias em ~/.ssh/config :

Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh -W %h:%p [email protected]

Para versões mais antigas do OpenSSH que não têm a opção -W (acho que isso significa ≤5,4), certifique-se de que O netcat está disponível no PC2 e usa

Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh [email protected] nc %h %p
    
por 14.09.2010 / 22:43
3

Usando o SSH, há uma solução clara:

  1. na sua máquina local, configure seu ~/.ssh/config de tal forma que tenha o seguinte:

    host WhatYouWillCallTheConnection
        hostname the.gateway.server.address.com
        user YourUsernameOnTheGateway
    
  2. No gateway e no servidor final aos quais você deseja se conectar, verifique se você tem as chaves públicas de seu cliente local localizadas em ~/.ssh/authorized_keys

  3. Na máquina do gateway, você precisa alterar o ~/.ssh/authorized_keys de forma que, no início da linha que especifica a chave pública do seu cliente, adicione o comando forçado da seguinte forma:

    command="ssh -A [email protected]" ...yourPublicKey....
    

O -A é encaminhar o agente se você não quiser enviar senhas o tempo todo ...

Dessa forma, sempre que você fizer algo como ssh WhatYouWillCallTheConnection , ele será executado diretamente pelo gateway e conectará você ao servidor do outro lado de forma transparente.

    
por 14.09.2010 / 22:38
2

Port Forwarding pode ser útil.
Do PC1:

~# ssh -fN -L 22:PC3:7777 -l <user> PC2  

O 7777 pode ser qualquer porta (desde que não esteja sendo usada). Eu apenas gosto desse número, mais qualquer "encomenda" que eu possa gerenciar por +1 (7778, 7779, etc, etc).

Isso será feito, você terá um túnel 'transparente' da porta local do PC1 7777 para a porta 22 do PC3. Basta emitir:

~# ssh -l <user> -p 7777 localhost  

E você deve estar no PC3.
Você também pode usar -D para encaminhar dinamicamente uma porta se quiser que um proxy SOCKS seja estabelecido.

~# ssh -D <someport> -fN -L 22:PC3:7777 -l <user> PC2  

Felicidades!

    
por 15.09.2010 / 00:20
0

A única solução que eu sei para isso é o script ssh com Belier :

Belier allows opening a shell or executing a command on a remote computer through a SSH connection. The main feature of Belier is its ability to cross several intermediate computers before realizing the job.

Um tempo atrás eu encontrei este README.sshhop no MIT Lincoln Página inicial do laboratório, mas não consegui encontrar mais informações sobre isso. Alguém sabe mais?

    
por 14.09.2010 / 22:28

Tags