Como criar um túnel SSH
Veja como criar um túnel SSH para se conectar a servidores e serviços que sua máquina local não tem acesso.
Você conhece a frase “você não precisa saber tudo, importante é conhecer que sabe”, nesse post vamos reescreve-la para “você não precisar ter acesso a tudo, só precisar conhecer quem tem”.
Imagina que você precisa acessar um serviço que você não tem acesso, porem você tem acesso SSH a uma máquina que consegue acessar aquele serviço.
Bom, é isso que vamos fazer usando um túnel SSH.
Da uma olhada nessa imagem que ilustra qual vai ser nosso lab.
No comando abaixo estamos abrindo a porta local 3333 (no PC que estamos) conectada ao servidor appserver (que temos acesso SSH) que está conectada a porta 3306 do servidor dbserver (que não temos acesso):
ssh -Nv -L localhost:3333:dbserver:3306 cesar@appserver
-N: Não executa nenhum comando remoto
-v: Ativa modo verboso
-L: Especifica o host e porta do tunel
Basicamente estamos fazendo isso:
Portanto, agora é possível conectar no mysql do dbserver através de localhost porta 3333. Aqui um exemplo utilizando mysql client na linha de comando, mas você poderia fazer via MySQL Workbench, por exemplo:
mysql -u app_user -p -h localhost -P 3333
Outro exemplo: Acessar uma aplicação que está rodando no na porta 80 do servidor appserver, porém você tem acesso apenas via SSH:
ssh -N -L localhost:8000:localhost:80 cesar@appserver
Portanto a porta 80 do servidor appserver estará disponível em localhost porta 8000.
O túnel pode ser usado em diversas outras situações, basta mapear as portas corretas.
Quer mais conteúdo sobre Linux? Veja aqui.