Estou procurando encaminhar uma porta para o VNC de volta para minha casa aqui. Eu tenho que pular um único host para pular para a minha máquina de trabalho real.
sittinghere
será minha máquina localhopper
vai pelo salto intermediário eu preciso fazeroverthere
será a máquina de trabalho remota
Eu posso fazer isso com o SSH na minha máquina de trabalho:
ssh -t hopper "ssh -t overthere"
Gostaria de usar o encaminhamento de porta para encaminhar a porta remota 5900 overthere
para a porta local 5900 sittinghere
. No entanto, eu preferiria fazê-lo sem vincular abertamente a uma porta, hopper
pois qualquer pessoa nessa máquina seria capaz de se conectar à minha conexão VNC.
Existe alguma maneira de eu encaminhar essa porta para minha máquina local com segurança, sem que ninguém possa ter acesso a ela hopper
?
ssh
port-forwarding
Naftuli Kay
fonte
fonte
Respostas:
Usando a capacidade nativa do SSH para encaminhar portas. De
sittinghere
executar:Aponte para o seu cliente VNC
localhost:5900
e o tráfego será direcionado paraoverthere:5900
a conexão SSH estabelecida emhopper
fonte
hopper
, e depoishopper
encaminha todo o tráfego paraoverthere:5900
. Seoverthere:5900
estiver ouvindo0.0.0.0
ou a interface fornecida, ele funcionará, mas não se estiver ouvindo127.0.0.1
.Acabei usando alguns
~/.ssh/config
hacks SSH para fazer isso acontecer:O que isso faz é que, quando tento conectar-me a
ssh overthere
partir desittinghere
, ele se conectahopper
e proxies a conexão SSH à porta 22 ligadaoverthere
(ou seja: SSH ativadooverthere
).Isso tem alguns efeitos colaterais impressionantes:
Tudo funciona muito bem e, até onde sei, o 5900 não está aberto
hopper
, apenas encaminhado diretamente deoverthere
parasittinghere
.fonte
apt-get install netcat-traditional -y
). Em seguida, você deve especificar explicitamente onc
tipo no arquivo de configuração (substituindonc
pornc.traditional
).Você pode encaminhar uma porta
sittinghere
daoverthere
porta SSH 's atravéshopper
. Então você pode usar essa porta para acessaroverthere
diretamente desittinghere
. Nesta segunda sessão SSH, você pode encaminhar o VNC ou qualquer outra porta que desejar, enquantohopper
vê apenas uma sessão SSH criptografada.Primeira sessão SSH:
Agora diga ao cliente SSH como ele pode ser alcançado
overthere
adicionando esta configuração~/.ssh/config
emsittinghere
Segunda sessão SSH:
Ou apenas uma sessão SSH interativa regular sem o túnel da porta VNC:
Se você não quiser se preocupar em adicionar linhas,
~/.ssh/config
ainda pode dizer como se conectar aoverthere
partir da linha de comando:... mas sem o
HostKeyAlias
SSH, não verificaráoverthere
corretamente a impressão digital da chave.Todas as linhas de comando devem ser executadas
sittinghere
.Aliás, acho que você provavelmente não precisa usar
ssh
a-t
opção.fonte
Primeiro conecte a tremonha enquanto faz um túnel entre o trabalhador e o PC doméstico.
então faça ssh ro overthere com túnel vnc
Agora você pode se conectar com o vnc. A propósito, altere a configuração do vnc para ouvir localhost
fonte
Se você estiver usando o cliente VNC a
vncviewer
partir da linha de comando, poderá usar o-via
comutador para fazer um túneluser@host
antes de conectar-se ao servidor VNC de outro host.Exemplo
Você também pode usar
vinagre
para conectar-se através de um túnel SSH como esse através da GUI. Para fazer isso, configure sua conexão de maneira semelhante a esta através da caixa de diálogo de conexão emvinagre
:O que resultará na conexão da sua conexão, em túnel através do host do túnel SSH.
Referências
fonte
O comando a seguir também deve funcionar perfeitamente
Foi testado com parâmetro adicional para conectar o servidor PostgreSQL
postgres-server
na porta personalizada (-p
switch) e também com o uso de nome de usuário personalizado.Como você pode ver, a solução é simples e não requer nenhuma alteração na configuração do ssh ou nenhuma etapa intermediária.
fonte