Termavox

Ajuda

Como o Termavox cuida das suas sessões, o que cada status e aviso quer dizer, e onde fica cada coisa.

Nesta página

O essencial

A sessão mora no Termavox, não no navegador. O Termavox mantém cada sessão aberta no servidor dele. O navegador só mostra a sessão: feche a aba, desligue o notebook ou troque para o celular, e ao voltar o terminal está exatamente como você deixou, com o vim ou o htop ainda rodando.

Seu navegador Mostra a sessão
Termavox Suas sessões moram aqui
Seu servidor Roda o shell, dentro do tmux quando protegida
Fechar não encerra
Fechar uma aba, um painel ou o navegador só desconecta a tela. A sessão continua rodando até você usar Encerrar.
Protegida aguenta quedas
Com o tmux no servidor, a sessão sobrevive a quedas de rede e a reinícios do Termavox. O escudo ao lado dela diz se é protegida.
O tmux fica invisível
O Termavox usa o tmux por baixo, sem barra de status nem tecla de prefixo. A rolagem, a seleção e a cópia são as do navegador.

O que acontece quando…

Duas sessões no mesmo servidor podem reagir de forma diferente à mesma queda. Depende de a sessão ser protegida (escudo cheio) ou sem proteção.

SituaçãoProtegidaSem proteção
Você fecha a aba, o navegador ou o notebookProtegidaContinuaA sessão segue rodando. Ao voltar, a mesma tela, na hora.Sem proteçãoContinuaIgual: fechar o navegador nunca afeta uma sessão.
A sua internet caiProtegidaContinuaUma faixa avisa “Sem conexão, tentando de novo”. Quando a conexão volta, a tela se atualiza.Sem proteçãoContinuaIgual: a sessão roda no Termavox, não no seu computador.
Cai a conexão entre o Termavox e o servidorProtegidaContinua“Reconectando…”: o Termavox reconecta e reconstrói a mesma tela e o histórico. Os programas não pararam no servidor.Sem proteçãoShell novoO shell e os programas dele se perdem. Um shell novo abre no mesmo terminal, abaixo de uma linha de aviso, com o histórico anterior ainda visível.
O Termavox reinicia ou é atualizadoProtegidaContinua“Restaurando…” por alguns segundos, e a mesma tela volta.Sem proteçãoShell novoO shell e a tela anterior se perdem. Um shell novo abre com uma linha de aviso.
O servidor reiniciaProtegidaShell novoO tmux não sobrevive a um reboot. Na reconexão começa um shell novo, e o painel avisa “O servidor reiniciou”.Sem proteçãoShell novoComo uma queda de conexão: um shell novo, com uma linha de aviso.
O tmux da sessão morre no servidor (pkill tmux, falta de memória)ProtegidaTerminaCom a sessão conectada, ela vai para Encerradas com “O shell terminou.”; Reabrir inicia outro shell. Se ela estava desconectada, a volta traz um shell novo e o aviso “O servidor reiniciou”.Sem proteçãoNão se aplicaSessões sem proteção não usam tmux.
Você digita exit, ou o shell terminaProtegidaTerminaA sessão vai para Encerradas. Reabrir inicia um shell novo.Sem proteçãoTerminaIgual.
Você usa EncerrarProtegidaTerminaO shell e todos os programas param no servidor, e o tmux da sessão é removido. Não dá para desfazer.Sem proteçãoTerminaO shell e todos os programas param no servidor.

Sessões protegidas

Uma sessão protegida roda dentro de um tmux no servidor, que o Termavox controla sem mostrar. Se a conexão cair ou o Termavox reiniciar, o tmux segura o shell e os programas, e o Termavox reconstrói a tela a partir dele.

O escudo ao lado de cada sessão diz qual é o caso; passe o mouse sobre ele para ler:

  • Cheio: “Protegida: sobrevive a reinícios e quedas de rede”.
  • Riscado: “Sem proteção: o shell se perde se a conexão cair”. A sessão continua rodando com o navegador fechado; o que ela não aguenta é perder a conexão com o servidor.
  • Tracejado: “A proteção é definida quando a sessão inicia”.

Para proteger as sessões, o servidor precisa de tmux 3.2 ou mais recente e de um locale UTF-8, com a Proteção da sessão em Automática (o padrão) na página do servidor. Em Diagnóstico → Testar conexão, a página do servidor mostra o que ele tem e o que falta.

Status e reconexão

StatusQuer dizer
Conectando…Quer dizerPrimeira conexão: entrando no servidor e iniciando o shell.
Restaurando…Quer dizerVoltando a uma sessão que já esteve conectada, depois de uma queda, de um reinício ou de Tentar de novo.
ConectadaQuer dizerPronta para usar.
Ação necessáriaQuer dizerO servidor espera você: confiar numa chave do host ou responder a um pedido de login, como um código de verificação.
Reconectando…Quer dizerA conexão com o servidor caiu e o Termavox tenta de novo sozinho. O painel mostra quando será a próxima tentativa.
DesconectadaQuer dizerAs tentativas acabaram, você clicou em Parar, ou o problema não se resolve sozinho (credencial recusada, chave do host diferente). Nada tenta de novo até você pedir. O motivo está em Mensagens e o que fazer.
EncerradaQuer dizerA sessão terminou. Reabrir inicia um shell novo.

Duas conexões diferentes

  • A sua conexão (navegador ⇄ Termavox). Quando cai, uma faixa avisa “Sem conexão, tentando de novo”. As sessões não sentem nada; a tela se atualiza na volta.
  • A conexão da sessão (Termavox ⇄ servidor). Quando cai, o painel mostra “Reconectando…”. É esta que a proteção cobre.

Quando a conexão da sessão cai:

  • Uma sessão que nunca conectou tenta poucas vezes e para: quase sempre é endereço, porta ou credencial errada. Corrija na página do servidor e use Tentar de novo; a correção vale na próxima tentativa.
  • Uma sessão que estava conectada continua tentando por até 30 minutos; o painel mostra até quando. Depois disso fica Desconectada.
  • Tentar agora pula a espera. Parar interrompe as tentativas.

Fechar, encerrar, reabrir e remover

  • Fechar uma aba ou um painel só desconecta a tela. A sessão continua na lista e rodando.
  • Encerrar… (menu da sessão) para o shell e todos os programas no servidor. Se o servidor estiver fora do ar, a sessão termina na hora e o tmux dela é encerrado na próxima conexão com aquele servidor.
  • Encerrar todas as sessões…, no pé da lista, faz o mesmo com todas as que estão rodando.
  • Reabrir volta uma sessão encerrada com um shell novo, mantendo o nome dela.
  • Remover da lista… (só sessões encerradas) apaga a sessão e o histórico dela. Remover todas as encerradas… faz isso de uma vez.

A mesma sessão em vários lugares

Abra a mesma sessão no notebook, em outro computador e no celular ao mesmo tempo: todos veem a mesma tela e todos podem digitar.

O tamanho do terminal segue a janela em que alguém digitou ou clicou por último. As outras mostram a sessão reduzida ou com bordas e o aviso “Tamanho definido por outra janela. Clique para ajustar.”

Área de trabalho e atalhos

  • A lista à esquerda agrupa as sessões por status. O botão logo abaixo de Nova sessão recolhe a lista em uma coluna de ícones.
  • Divida uma aba com Dividir à direita e Dividir abaixo, e arraste a divisória para ajustar. Abrir em uma nova aba fica no menu da sessão.
  • Renomeie pelo menu da sessão ou com clique duplo na aba. Todos que veem a sessão veem o nome novo.
  • Abas, divisões e tamanhos ficam guardados no Termavox e voltam em qualquer navegador em que você entrar.
AtalhoFaz
Ctrl+K ou ⌘+KFazBuscar uma sessão ou iniciar uma nova (com o foco fora do terminal).
Ctrl+Shift+K ou ⌘+⇧+KFazO mesmo, de dentro do terminal, onde Ctrl+K pertence ao shell.
↑ ↓ Enter EscFazNa busca: mover, abrir, fechar.

Copiar, colar e links

Em Configurações → Terminal:

  • Copiar ao selecionar (desligado por padrão): o texto selecionado vai direto para a área de transferência.
  • Colar com o botão direito (desligado): o botão direito cola em vez de abrir o menu do navegador.
  • Confirmar antes de abrir links (ligado): um link clicado no terminal mostra o endereço completo antes de abrir em uma nova aba.

No celular

  • A lista de sessões ocupa a tela; uma sessão abre em tela cheia, e Sessões volta para a lista.
  • A barra de teclas traz Esc Tab Ctrl Alt, as setas, a barra vertical e Colar.
  • Ctrl e Alt ficam armados para a próxima tecla: toque em Ctrl e depois em c para mandar Ctrl+C.
  • Se o navegador não deixar colar pela barra, toque e segure o terminal.
  • Dá para instalar o Termavox como app pelo menu do navegador (“Adicionar à tela inicial”).

Painel de arquivos

O botão Arquivos no painel de uma sessão abre os arquivos do servidor ao lado do terminal. Ele usa a própria conexão SSH da sessão, como o mesmo usuário: sem novo login e sem nada instalado no servidor. Por isso só funciona com a sessão conectada.

  • Enviar vários arquivos de uma vez, ou arraste e solte no painel. Baixar, Renomear e Apagar agem sobre os itens selecionados; Nova pasta fica no topo.
  • Se um arquivo já existe: Substituir (mantém as permissões do atual), Manter os dois ou Pular estes.
  • Ir para a pasta do terminal só existe em sessões protegidas.
  • Pastas inteiras ainda não podem ser enviadas nem baixadas: selecione os arquivos dentro delas.
  • Uma pasta com mais de 10.000 itens (menos, quando os nomes ou os destinos dos links são longos) é listada só em parte, e o painel avisa.
  • Apagar para depois de ler mais de 100.000 itens, ou com mais de 64 níveis de pastas aninhadas: “Esta pasta é grande demais para apagar pelo painel. Apague-a pelo terminal (por exemplo, com rm -r).” O que já foi apagado continua apagado.
  • Um download que o navegador deixa pausado por mais de dois minutos é interrompido: baixe o arquivo de novo.
  • Um envio interrompido porque a conexão com o servidor caiu, ou porque o servidor parou de responder, pode deixar naquela pasta um arquivo oculto chamado .<nome>.tv-<id>.part. Dá para apagá-lo pelo painel.
  • Um nome com caracteres invisíveis ou de controle (uma inversão de direção, um espaço de largura zero, uma quebra de linha, um espaço no começo ou no fim, um espaço incomum em qualquer posição, como o espaço sem quebra, o estreito da tipografia francesa ou o largo do japonês) mostra � no lugar de cada um; passe o mouse sobre o nome para ver a forma exata, como report\u202Efdp.exe. O painel continua agindo sobre o nome real.
  • Teclado: as setas movem, Espaço seleciona, Enter abre uma pasta, F2 renomeia, Delete apaga.

Servidores e credenciais

  • Um servidor guarda tudo o que um ssh usuário@endereço precisa: endereço, porta, usuário, credencial e as opções da sessão. A mesma máquina com outro usuário é outro servidor; Duplicar ajuda.
  • Mudanças num servidor valem para as sessões novas. As que estão rodando mantêm o endereço com que começaram.
  • Para entrar, prefira Gerar uma chave nova: a chave privada nunca sai do Termavox, e você instala a pública no servidor. Também dá para colar uma chave, usar uma senha, ou Nenhuma (o servidor pede a senha no terminal).
  • Em Avançado: proteção, comando inicial, variáveis de ambiente, keepalive, linhas de histórico e a reabertura de sessões desprotegidas.
  • O Termavox roda no Docker na mesma máquina que você quer acessar? Use Adicionar este host Docker.

Chaves do host e login no servidor

  • Na primeira conexão o Termavox pergunta Confiar nesta chave do host?. Compare a impressão digital com a do servidor (lá, ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub) antes de confiar.
  • A decisão vale para o endereço: todos os seus servidores naquele endereço, e só para você.
  • Para confiar antes da primeira sessão, use Testar conexão ou Colar impressão digital esperada na página do servidor.
  • Servidores que pedem um código (2FA) ou uma senha mostram a pergunta no painel. As respostas vão para o servidor e nunca são guardadas. Se o pedido expirar, use Tentar de novo.

Sessões que ficaram rodando num servidor

O tmux de uma sessão protegida continua rodando no servidor enquanto o Termavox está fora do ar. É de propósito: na volta, o Termavox se reconecta a ele. Ele só fica para trás quando o Termavox o esquece: outra instalação do Termavox, ou esta mesma depois de o banco de dados ser zerado.

  • A área de trabalho avisa Sessões encontradas em… quando vê uma dessas ao conectar.
  • Na página do servidor, Sessões neste servidor → Verificar agora lista as sessões. Adotar traz uma para a área de trabalho, com a mesma tela; Encerrar… para os programas dela.
  • Sessões que você já encerrou e que continuavam lá são encerradas automaticamente.

Conta e administração

  • Senha (Configurações → Conta): ao trocar, seus outros navegadores são desconectados. Esqueceu a senha? Peça uma senha temporária a um administrador.
  • Verificação em duas etapas: um código de um app autenticador a cada login. O administrador pode torná-la obrigatória.
  • Idioma: no menu da conta, em Idioma….
  • Versão: a última linha do menu da conta mostra a versão em execução, como “Termavox 0.1.0”. Informe-a ao relatar um problema nas issues do projeto no GitHub. Um problema de segurança vai por um canal privado, como explica a política de segurança.
  • Atividade mostra o que aconteceu com as suas sessões. A entrada e a saída do terminal nunca são gravadas.
  • Administradores criam usuários, podem exigir a verificação em duas etapas, limitar as sessões em execução por usuário (padrão: 50), ligar ou desligar o painel de arquivos e consultar o log de auditoria.

Mensagens e o que fazer

Quando a sessão fica Desconectada

MensagemO que fazer
O servidor rejeitou a credencial.O que fazerConfira na página do servidor o usuário e a credencial (a chave pública está no ~/.ssh/authorized_keys desse usuário?) e use Tentar de novo.
A credencial guardada não pode ser usada. Confira na página de credenciais.O que fazerCrie a credencial de novo em Credenciais e escolha-a na página do servidor.
Você rejeitou a chave do host.O que fazerSe foi engano, Tentar de novo faz a pergunta outra vez.
Não foi possível alcançar o servidor. Tente de novo quando ele voltar.O que fazerO servidor está desligado ou fora da rede. Numa sessão protegida, o tmux continua lá: use Tentar de novo quando ele voltar.
Não foi possível alcançar o servidor. Confira o endereço e a porta: a correção feita na página do servidor vale quando você tentar de novo.O que fazerCorrija o endereço ou a porta em Editar servidor e use Tentar de novo.
O servidor desta sessão foi excluído, então ela não pode mais se conectar.O que fazerEncerre a sessão. Para voltar àquela máquina, adicione o servidor de novo.
Sua conta não tem permissão para abrir esta sessão.O que fazerFale com um administrador do Termavox.
Shells locais ainda não estão disponíveis: o modo direto chega em uma versão futura.O que fazerUse um servidor SSH; para a própria máquina do Termavox, Adicionar este host Docker.
O servidor apresentou uma chave diferente da confiável.O que fazerVeja Chaves do host. Não confie sem confirmar que a chave mudou de verdade.
O comando inicial ou o ambiente do servidor contém caracteres que o Termavox não consegue passar a ele com segurança. Edite o servidor e tente de novo.O que fazerAjuste o comando inicial ou as variáveis em Avançado, na página do servidor.
O endereço deste servidor aponta para a máquina que roda o Termavox, ou para um endereço de loopback, link-local ou multicast, o que esta instalação não permite.O que fazerPara acessar a própria máquina do Termavox, use Adicionar este host Docker.
A conexão com o servidor caiu.O que fazerAs tentativas automáticas acabaram. Use Tentar de novo quando o servidor estiver de volta.
O servidor aceitou a conexão, mas não conseguiu iniciar o terminal.O que fazerO servidor recusou abrir o shell (uma conta sem shell válido, ou um limite do sshd). Teste o mesmo login com ssh e tente de novo.
O servidor não concluiu o login a tempo.O que fazerO servidor está lento ou esperou uma resposta que não veio. Use Tentar de novo.
Você parou as tentativas. A sessão aguarda até você tentar de novo ou encerrá-la.O que fazerTentar de novo quando quiser, ou Encerrar.
A conexão falhou e não será tentada de novo automaticamente.O que fazerUse Tentar de novo. Se repetir, a página Atividade mostra os detalhes.

Quando a sessão termina

MensagemO que fazer
A sessão foi encerrada.O que fazerAlguém usou Encerrar (você, em outra janela, ou um administrador). Reabrir inicia um shell novo.
O shell terminou.O que fazerO shell saiu (exit), caiu, ou o tmux da sessão foi morto. Reabrir inicia um shell novo.
A conexão caiu e a sessão não estava protegida.O que fazerReabrir. Para não perder o shell da próxima vez, veja Sessões protegidas.
O Termavox reiniciou e a sessão não estava protegida.O que fazerReabrir. Para não perder o shell da próxima vez, veja Sessões protegidas.
A sessão parou depois de um erro.O que fazerReabrir. Se repetir, a página Atividade mostra os detalhes.
A sessão terminou.O que fazerReabrir inicia um shell novo.