Só para responder à minha pergunta, por algum motivo você precisa forçar o ipv4, ou seja, de A
ssh -4 -L 5901:localhost:5900 B
Isso funciona.
Eu tenho a seguinte situação:
A -----|------ B -----|------ Work
O trabalho pode transformar o SSH em B e o A em SS, mas, além disso, tudo é protegido por firewall. O que eu gostaria de fazer é criar um túnel SSH entre Work e A para que eu possa VNC em Work from A.
Do trabalho, criei um túnel SSH remoto:
ssh -R 5900:localhost:5900 B
Isso significa que posso VNC de B para o trabalho. Mas o que eu preciso fazer para estender isso para A. Eu tentei criar um túnel SSH local de A para B assim:
ssh -L 5901:localhost:5900 B
Mas dá, bind: Cannot assign requested address
, como 5900 já foi atribuído.
Alguém tem alguma idéia de como fazer isso?
Só para responder à minha pergunta, por algum motivo você precisa forçar o ipv4, ou seja, de A
ssh -4 -L 5901:localhost:5900 B
Isso funciona.
Não sei se minha resposta será perfeita, mas vou tentar.
A configuração que você está tentando obviamente não funcionará, já que você está encaminhando da porta 5900 em B para o trabalho e também encaminhando a porta 5900 de A para B.
Mas você não pode usar a mesma porta para duas conexões diferentes, é por isso que você está recebendo o erro "bind: Não é possível atribuir o endereço solicitado, como 5900 já foi atribuído."
O que você pode fazer é configurar um encaminhador em B.
Em seguida, tente usar este comando de A: # ssh -L 5901: localhost: 5901 B
Em seguida, encaminhe o tráfego da porta 5901 para a 5900 e vice-versa na B.
Eu não tenho a configuração e o tempo para testá-lo, mas estou muito curioso para saber se ele funcionará ou não.
Então, peça a você que volte aqui com os resultados depois de ter testado isso.
Tags linux tunneling ssh-tunnel