Trabalhando remotamente
A seguir, algumas dicas para quem precisar usar a infraestrutura dos laboratórios de maneira remota.
Se você estiver de fora da rede do DCC (por exemplo, da sua casa e sem usar VPN), é necessário fazer login primeiro na máquina login.dcc.ufmg.br, para depois entrar na máquina específica do laboratório com que se quer trabalhar (e.g., roomba, epona).
Contents
Acessando máquinas via SSH (shell)
É possível usar o recurso de jump host do SSH para conectar na máquina desejada (e.g., roomba) passando por outra que esteja no caminho (e.g, login.dcc.ufmg.br).
Em linha de comando, podemos fazer:
ssh -J SEU_USUARIO_DCC@login.dcc.ufmg.br SEU_USUARIO_VERLAB@NOME_DA_MAQUINA.verlab
Por exemplo, para flavioro se conectar à roomba:
ssh -J flavioro@login.dcc.ufmg.br flavioro@roomba.verlab
Ao executar, primeiro será solicitada a senha do usuário do DCC, depois a senha dele no laboratório (se forem diferentes).
Solução de Problemas: Lentidão na Conexão SSH
Se você estiver enfrentando lentidão na conexão com os servidores do DCC (latência superior a 200ms), siga os passos abaixo para diagnosticar e resolver o problema, que geralmente está relacionado a rotas problemáticas no protocolo IPv6.
Primeiro, verifique o tempo de resposta do servidor principal de acesso. Utilize o comando ping para observar a latência em milissegundos (ms):
ping login.dcc.ufmg.br
Dica: Para ter um parâmetro de comparação, teste também a conexão com um servidor externo estável, como o Google:
ping google.com
Se o ping para o login.dcc.ufmg.br estiver muito alto em comparação ao do Google, o problema pode ser a rota do seu IPv6. Teste forçar a conexão via IPv4:
ping -4 login.dcc.ufmg.br
Caso a latência diminua significativamente (ex: para menos de 40ms), confirma-se que a rota IPv6 do seu provedor de internet para o DCC está congestionada ou mal configurada. Para evitar ter que forçar o IPv4 manualmente em toda conexão, você pode configurar o seu cliente SSH local.
- Abra (ou crie) o arquivo de configuração no seu computador: ~/.ssh/config.
- Adicione ou edite as entradas conforme o modelo abaixo:
# Configurações gerais para todos os hosts Host * ServerAliveInterval 120 ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h-%p ControlPersist 600 # Configuração específica para o DCC Host dcc HostName login.dcc.ufmg.br User SEU_USUARIO_DCC # Substitua pelo seu login do DCC AddressFamily inet # Força o uso exclusivo de IPv4 # Exemplo de túnel para máquinas internas (ex: proc8) Host proc8 HostName proc8.verlab # Nome ou IP da máquina interna User SEU_USUARIO_VERLAB # Substitua pelo seu login do verlab ProxyCommand ssh -W %h:%p dcc
Com o arquivo salvo, você poderá acessar o servidor de forma simplificada, garantindo uma latência menor:
ssh dcc
Ou acessar diretamente uma máquina interna através do túnel configurado:
ssh proc8
Acessando máquinas via SSH (VSCODE)
1. Instale a extensão Remote - SSH em seu VsCode.
2. Clique no ícone Remote Explorer, que se encontra no menu lateral esquerdo.
3. Certifique-se que a opção Remote Explorer esteja setada com Remotes (Tunnels/SSH).
4. Clique em adicionar nova conexão e copie o seguinte comando na aba de input que irá se abrir:
ssh -J SEU_USUARIO_DCC@login.dcc.ufmg.br SEU_USUARIO_VERLAB@NOME_DA_MAQUINA.verlab
5. Aperte Enter.
6. Clique no primeiro diretório de arquivo de configuração para criá-lo.
7. Clique em Connect.
8. Insira suas credenciais (Primeiro a senha do login.dcc e depois a do laboratório).
9. Para adicionar um atalho único para todas as maquinas abra o arquivo de configuração ssh:
/.ssh/config
10. Em seguida copie o comando para o arquivo e todas as máquinas ficaram disponiveis:
Host * ServerAliveInterval 7200 AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519 Host dcc HostName login.dcc.ufmg.br Host proc1 proc2 proc3 proc4 proc5 proc6 proc7 proc8 escher epona nymeria ghost eva drogon storage roomba marvin magritte bender munch nilo r2d2 epuck bb8 manolo puma nomad parrot dalek wall-e rhaegal viserion shaggydog greywind lady summer zelda bishop kiora kaya narset andrew blackwell ProxyCommand ssh -4 -q SEU_USUARIO_DCC@dcc nc %h.verlab.dcc.ufmg.br 22
Acessando máquinas via SFTP (nautilus)
Para fazer transferência de arquivos entre a sua máquina e aquela em que você executou seus experimentos, você pode usar SFTP. O Files (antigo Nautilus) do Gnome tem essa funcionalidade. Você pode testar digitando ssh://SEU_USUARIO_DCC@login.dcc.ufmg.br no campo "Conectar a servidor" e ver que consegue ver os arquivos da sua HOME do DCC (depois de digitar sua senha).
Contudo, não é possível usar a funcionalidade de jump host do SSH tão facilmente pela interface do Files. É necessário configurar o SSH para criar os destinos desejados e, então, acessar usando o nome do destino desejado. Para tanto, vamos precisar:
- Abrir (criando ou alterando) o arquivo de configuração do SSH no seu computador
- nano ~/.ssh/config
- Escrever as configurações para (a) compartilhamento de conexão entre jumps, (b) definir destino da rede DCC, definir 1 novo destino para cada máquina desejada do laboratório:
ControlMaster auto ControlPath ~/.ssh/control-%h-%p-%r Host dcc HostName login.dcc.ufmg.br User SEU_USUARIO_DCC Host roomba HostName roomba.verlab ProxyCommand ssh -W %h:%p dcc User SEU_USUARIO_VERLAB Host wall-e HostName 150.164.212.244 ProxyCommand ssh -W %h:%p dcc User SEU_USUARIO_VERLAB Host NOME_DE_UMA_MAQUINA HostName NOME_DE_UMA_MAQUINA ProxyCommand ssh -W %h:%p dcc User SEU_USUARIO_VERLAB
- Testar o acesso SSH (shell) para a rede do DCC e para os computadores do laboratório desejados:
ssh dcc # deve pedir sua senha DCC para se conectar à login.dcc.ufmg.br ssh roomba #deve pedir primeiro a senha DCC, depois a do laboratório
- Na interface do Files (antigo nautilus), na aba "+ Outros locais", no campo "Conectar a servidor", digite
ssh://NOME_DE_UMA_MAQUINA. Por exemplo:ssh://roomba
- Então, forneça sua senha do DCC
- Depois do laboratório
- Será possível visualizar, baixar/subir arquivos para sua HOME na máquina em que entrou:
Terminal para Windows 10/11 fazer SSH, X11 forward e etc
Enhanced terminal for Windows with X11 server, tabbed SSH client, network tools and much more. MobaXterm provides all the important remote network tools (SSH, X11, RDP, VNC, FTP, MOSH, ...) and Unix commands (bash, ls, cat, sed, grep, awk, rsync, ...) to Windows desktop, in a single portable exe file which works out of the box.
Usando tmux ou byobu: multiplexador de terminais
tmux
Tutoriais e getting started:
- https://github.com/tmux/tmux/wiki/Getting-Started
- https://www.hostinger.com.br/tutoriais/como-usar-tmux-lista-de-comandos/
- https://qnax.sh/blog/como-usar-o-tmux-um-guia-completo-com-lista-de-comandos/
- https://www.makeuseof.com/install-tmux-linux/
- https://www.makeuseof.com/tag/cheat-sheet-tmux-commands-cheat-sheet/
- https://itexto.com.br/receitas-da-itexto-como-ter-janelas-em-seu-terminal-usando-tmux/
- https://github.com/tmux/tmux/wiki/Advanced-Use#advanced-use
- https://arcolinux.com/everthing-you-need-to-know-about-tmux-panes/
- http://man.openbsd.org/OpenBSD-current/man1/tmux.1
Lista de temas e add-ons para o tmux
- https://github.com/rothgar/awesome-tmux
- https://www.trackawesomelist.com/rothgar/awesome-tmux/readme/
Configurações básicas para facilitar o uso com mouse
| Criar arquivo de configuração do tmux para habilitar o mouse e outras coisas úteis |
|---|
# Criar arquivo na home do seu usuário chamado .tmux.conf # nano ~/.tmux.conf # Inserir as linhas abaixo: # increase history size set-option -g history-limit 10000 # start with mouse mode enabled set-option -g mouse on # toggle synchronize-panes unbind y bind y set-window-option synchronize-panes # pane navigation, vim style unbind l bind -r h select-pane -L # move left bind -r j select-pane -D # move down bind -r k select-pane -U # move up bind -r l select-pane -R # move right |
byobu
Comandos Basicos Linux
Sobrescrever o ~/.bashrc com os valores default
cp -i /etc/skel/.bashrc /home/$USER/.bashrc
