Difference between revisions of "Trabalhando remotamente"

From VeRLab Wiki
Jump to: navigation, search
m (Adicionando como obter uma latência menor na conexão via ssh, ao servidor login.dcc.ufmg.br)
m (Solução de Problemas: Lentidão na Conexão SSH)
 
Line 58: Line 58:
 
Host proc8
 
Host proc8
 
   HostName proc8.verlab            # Nome ou IP da máquina interna
 
   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
 
   ProxyCommand ssh -W %h:%p dcc
 
</pre>
 
</pre>

Latest revision as of 19:05, 21 April 2026

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).


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.

  1. Abra (ou crie) o arquivo de configuração no seu computador: ~/.ssh/config.
  2. 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).

 Remote tunel.png

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.

 Host add.png

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)

Screenshot do Gnome Files mostrando a aba "+ Outros Locais", que permite o usuário "Conectar a servidor", digitando um endereço SSH (dentre outras formas).

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:

  1. Abrir (criando ou alterando) o arquivo de configuração do SSH no seu computador
  2. nano ~/.ssh/config
  3. 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
  4. 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
  5. 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:
Screenshot do Gnome Files mostrando a aba "+ Outros Locais" conectada à máquina marvin do laboratório, permitindo transmissão de arquivos.




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.

Moba-xterm.png

Usando tmux ou byobu: multiplexador de terminais

tmux

Tutoriais e getting started:

Lista de temas e add-ons para o tmux

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


Como funciona a autenticação por chave publica-privada

- http://www.unixwiz.net/techtips/ssh-agent-forwarding.html