Script para tunelamento para a rede do VeRLab
Este script abre um tunelamento em cascata para acessar computadores do VeRLab de fora da rede da UFMG. Esse tunelamento é interessante para acessar os repositórios do Subversion ou as páginas do Trac. Também pode ser utilizado por quem pretende navegar na home do verlab utilizando o nautilus de uma máquina fora da rede do Verlab.
Obs.: Lembre-se de substituir as duas instâncias de ”<nome do seu usuário …>” pelo seu login do DCC e do VeRLab, logo no início do script.
Forma de uso
Copie o código-fonte do script para um arquivo local no seu computador, digamos ~/ssh-verlab
. Habilite a permissão de execução nesse arquivo local: chmod a+x ~/ssh-verlab
.
- Para iniciar os tunelamentos, execute apenas
~/ssh-verlab
. Não é necessário executar em background (ou seja, não precisa usar o prefixo&
); - Para fechar os tunelamentos, execute
~/ssh-verlab -d
.
Detalhes de funcionamento
Este script abre dois tunelamentos: um para o computador mica.dcc.ufmg.br
(necessário para acessar qualquer outro computador do DCC); e o segundo, cascateado através do primeiro, para o serviço HTTPS do servidor davinci.verlab.dcc.ufmg.br
, disponível localmente na porta 4465.
Com esse tunelamento, é possível acessar alguns os serviços do nosso servidor. Por exemplo:
https://localhost:4465/svn
acessa o diretório dos repositórios do Subversion;https://localhost:4465/trac
acessa o diretório dos projetos do Trac.
O script pode ser facilmente alterado para habilitar o tunelamento do X (basta adicionar -X ao segundo comando ssh
) ou para abrir tunelamentos para outras máquinas do VeRLab. No entanto, lembre-se de que são duas camadas de criptografia em ação, portanto a transferência de um grande volume de dados deve ocorrer de forma lenta.
Código-fonte do script
#!/bin/bash # Ajustar o valor das seguintes variaveis: USERNAME_VERLAB=<nome do seu usuario na rede do VERLAB> USERNAME_DCC=<nome do usuario na rede do DCC> # Opcoes de linha de comando if [[ "$1" == "-d" ]]; then DELETEONLY=1 fi # Apagando tuneis anteriores PROCESSLIST=$(ps aux | \ grep '[0-9] ssh -f -N -L 4465:localhost:443 ' | \ awk '{ print $2 }') PROCESSLIST=(${PROCESSLIST[@]} \ "$(ps aux | \ grep '[0-9] ssh -f -N -L 2265:davinci.verlab.dcc.ufmg.br:22 ' | \ awk '{ print $2 }')") if [[ -n ${PROCESSLIST[@]} ]]; then echo "Removendo conexoes antigas (${PROCESSLIST[@]})..." kill ${PROCESSLIST[@]} fi # Criando tuneis novos if [[ -z "$DELETEONLY" ]]; then echo "Conectando..." ssh -f -N -L 2265:davinci.verlab.dcc.ufmg.br:22 \ -o ExitOnForwardFailure=yes $USERNAME_DCC@mica.dcc.ufmg.br ssh -f -N -L 4465:localhost:443 -o Port=2265 \ -o ExitOnForwardFailure=yes $USERNAME_VERLAB@localhost fi echo "Ok."
Navegando em arquivos e pastas com o Nautilus
Faça o tunelamento com o seguinte comando:
ssh -f <login>@login.dcc.ufmg.br -L 1337:munch.verlab:22 -N
Após realizado o tunelamento, abra o Nautilus e vá em: File→Connect to Server. Em Service Type, selecione SSH. Em server, escreva “localhost” (sem as aspas) e em port, 1337. Clique em connect para conectar. Será pedida uma senha, utilize a senha de acesso à rede do VeRLab.