Eu tenho três computadores.
PC1 e PC2 estão em uma LAN privada, onde PC1 é conhecido por PC2 como192.168.0.2
PC2 e PC3 está em outra LAN, onde PC2 é conhecido por PC3 como192.168.123.101
Como posso conectar ao PC1 do PC3 com SSH.
Existe algo como:
ssh [email protected] -via [email protected]
Usando o SSH, há uma solução clara:
na sua máquina local, configure o seu de
~/.ssh/config
forma que ele tenha o seguinte:No gateway e no servidor final aos quais você deseja se conectar, verifique se as chaves públicas do seu cliente local estão localizadas no diretório
~/.ssh/authorized_keys
Na máquina do gateway, é necessário alterar o
~/.ssh/authorized_keys
modo que, no início da linha que especifica a chave pública do seu cliente, adicione o comando forçado da seguinte maneira:O
-A
é encaminhar o agente se você não gosta de enviar senhas o tempo todo ...Dessa forma, sempre que você fizer algo parecido,
ssh WhatYouWillCallTheConnection
ele passará direto pelo gateway e o conectará ao servidor do outro lado de forma transparente.fonte
ssh -A
se não confiar no administrador da máquina de gateway. Ele não pode obter sua chave privada, mas enquanto você estiver conectado ao gatewayssh -A
, ele poderá usar o agente encaminhado para conectar-se a outras máquinas como você.O encaminhamento de porta pode ser útil.
Do PC1:
O 7777 pode ser qualquer porta (desde que ainda não esteja sendo usada). Eu apenas gosto desse número, mais qualquer "pedido" que eu possa gerenciar por +1 (7778, 7779, etc, etc).
Isso está sendo feito, você terá um túnel 'transparente' da porta local 7777 do PC1 para a porta 22 do PC3. Basta emitir:
E você deve estar no PC3.
Você também pode usar -D para encaminhar dinamicamente uma porta, se desejar que um proxy SOCKS seja estabelecido.
Felicidades!
fonte
A resposta 2017+ (desde o ssh v7.3) para isso é ProxyJump :
ssh -J user@jumphost user@destination
, que é abreviação de:
ssh -o "ProxyJump user@jumphost" user@destination
Isso pode ser reduzido
ssh dest
com um~/.ssh/config
trecho de código como tal:fonte
A única solução que eu conheço para isso é o script ssh com Belier :
Há um tempo atrás encontrei este README.sshhop na página inicial do Laboratório do Lincoln do MIT, mas não consegui encontrar mais informações sobre isso. Alguém sabe mais?
fonte