Confirmações e perguntas (excluir sessões, pastas, túneis e macros, dar nome a uma nova pasta, as ações do SFTP) abrem nas caixas de diálogo do próprio PlexusTerm: Enter envia um nome digitado e pressiona o botão em foco de uma confirmação, Esc cancela, e Cancelar fica com o foco quando a ação exclui algo. Cancelar nunca executa a ação.
O painel Sessões salvas à esquerda guarda sessões SSH, seriais, Telnet, Mosh e de terminal local em pastas (caminhos no estilo Prod/DB).
Use Nova / Pasta ou as ações que aparecem ao passar o mouse sobre uma pasta; clique duas vezes em uma sessão (ou pressione Enter) para conectar, e a caixa de pesquisa filtra por nome, host, dispositivo serial ou shell.
Clique com o botão direito em uma sessão para Conectar, Editar…, Duplicar (uma cópia chamada "~ é a sua pasta pessoal; vazio também começa lá), de modo que um PowerShell, uma distribuição WSL ou a pasta de um projeto fica a um clique duplo; o título das abas delas é o nome do shell.
As sessões são armazenadas em ~/.config/dev.plexusterm.app/sessions.json (gravado de forma atômica, modo 0600); cada entrada tem um kind (ssh, serial, telnet, mosh ou local), e as entradas gravadas por versões anteriores sem ele são carregadas como sessões SSH.
O arquivo nunca contém senhas nem frases secretas de chaves (veja Senhas salvas).
Versões anteriores às sessões de terminal local não conseguem ler um arquivo que tenha uma delas, então mostram o erro abaixo em vez das sessões.
Se o arquivo não puder ser lido, o painel mostra o erro e desativa a edição para que o arquivo nunca seja sobrescrito.
Senhas salvas
As sessões com senha salva (abas de terminal, Mosh e túneis) conectam primeiro: o PlexusTerm tenta suas chaves (veja Sessões SSH), depois a senha salva no chaveiro, e só pede a senha quando o servidor ainda precisa dela. Esse pedido tem uma caixa de seleção Salvar a senha no chaveiro do sistema, desmarcada por padrão. As sessões de conexão rápida recebem a senha na caixa de diálogo de conexão e nunca a salvam. Instalar no gerador de chaves SSH continua perguntando antes de conectar.
- As senhas ficam somente no chaveiro do sistema, por meio da API Secret Service (GNOME Keyring, KWallet), sob o serviço
dev.plexusterm.app, com o id da sessão como conta e o rótuloPlexusTerm: user@host:port. Elas nunca são gravadas emsessions.jsonnem emtunnels.json. - Uma senha só é salva depois de um login bem-sucedido. As conexões seguintes a leem no backend; ela nunca é enviada de volta à interface.
- Uma senha salva fica vinculada ao
user@host:portpara o qual foi digitada e só é enviada para lá. Mudar o host, a porta ou o usuário de uma sessão (ou trocar a autenticação por senha por outra) esquece a senha salva; as senhas salvas por versões anteriores, que não têm esse vínculo, são pedidas novamente uma vez. - Se o chaveiro não conseguir salvar ou excluir a senha (por exemplo, porque está bloqueado e não responde em 10 segundos), a conexão abre mesmo assim e um aviso é mostrado: uma linha amarela na aba do terminal, ou uma nota abaixo do túnel.
- Se a senha salva for rejeitada, o pedido aparece com a caixa marcada: um login bem-sucedido a substitui, e desmarcar a caixa a exclui. Se não houver uma senha utilizável salva, o pedido aparece desmarcado, como em um primeiro login.
- Esquecer a senha salva na caixa de diálogo de edição da sessão a exclui; excluir uma sessão, ou uma pasta que a contenha, também a exclui.
- Sem um Secret Service, a caixa de seleção fica desativada e as senhas são pedidas a cada conexão.
- As frases secretas das chaves nunca são salvas.
Hosts de salto
Uma sessão SSH salva pode chegar ao seu servidor por até 3 hosts de salto (bastions), como ssh -J. Na caixa de diálogo de edição da sessão, Hosts de salto lista outras sessões SSH salvas na ordem em que são atravessadas: adicione-as pela lista, mova-as para cima ou para baixo, ou remova-as. As sessões de conexão rápida não têm hosts de salto.
- O PlexusTerm faz login no primeiro host de salto, abre a partir dele uma conexão encaminhada para o endereço e a porta do próximo host, faz login nele, e assim por diante até o próprio servidor da sessão. Cada host é alcançado a partir do anterior, então o endereço dele precisa fazer sentido ali (por exemplo, um IP privado atrás do bastion).
- Cada host é verificado em
~/.ssh/known_hostscom seu próprio endereço e porta; um host de salto desconhecido mostra o pedido de confiança com o nome dele ("bastion — host de salto 1 de 2"). - Cada host faz login com o método da sua própria sessão salva (chave, agente ou senha). Os hosts com senha tentam primeiro suas chaves e depois a senha salva no chaveiro; um host que ainda precisa de senha é perguntado durante a conexão, um de cada vez ("Senha de bastion — host de salto 1 de 2"), cada pedido com sua própria caixa de seleção Salvar a senha no chaveiro do sistema.
- Se um host de salto tiver seus próprios hosts de salto, eles são atravessados primeiro. Uma sessão não pode ser o seu próprio host de salto, e cadeias com ciclos, sessões repetidas, mais de 3 hosts no total, ou sessões de salto excluídas ou que não são SSH são recusadas com um erro.
- Os erros indicam o host que falhou, por exemplo
via bastion (jump host 1): authentication failed. - O navegador SFTP da aba usa a mesma conexão, e os túneis SSH cuja sessão tem hosts de salto também passam por eles. Fechar a aba (ou parar o túnel) fecha todas as conexões da cadeia.
- Excluir uma sessão que outras sessões usam como host de salto pede confirmação e a remove dos hosts de salto delas.
Importar sessões de um arquivo .ini
Importar → De um arquivo .ini… no painel Sessões salvas lê um arquivo de sessões .ini com seções [Bookmarks] (UTF-8, ou a página de código Windows-1252 em que esses arquivos costumam ser gravados) e mostra uma prévia antes de salvar qualquer coisa:
- As sessões SSH das seções
[Bookmarks]/[Bookmarks_N]são importadas com seu host, porta (22 quando ausente ou inválida) e usuário, e as sessões Telnet com seu host e porta (23 quando ausente ou inválida), em uma pasta Imported que mantém o caminho de pastas salvo no arquivo. - As sessões SSH importadas usam autenticação por senha; mude isso depois com Editar. Os caminhos de chaves privadas não são importados.
- Os outros tipos de sessão (RDP, VNC, Serial, WSL, FTP, ...), as entradas sem host e as linhas não reconhecidas são ignorados e contados por tipo na prévia.
- As sessões já salvas com o mesmo tipo, pasta, nome, host, porta e usuário são ignoradas como duplicatas.
- As senhas nunca são importadas: a seção
[Passwords]e qualquer outra seção não são lidas.
Importar hosts do ~/.ssh/config
Importar → De ~/.ssh/config lê a configuração do cliente OpenSSH da sua pasta pessoal (~/.ssh/config, também no Windows) e mostra a mesma prévia:
- Cada alias
Hostconcreto se torna uma sessão SSH com o nome dele, em Imported/SSH config. Os padrões com curingas (*,?) e negados (!) não são importados como sessões, mas suas opções se aplicam aos hosts que correspondem a eles, assim como as opções antes do primeiroHost; como no ssh, o primeiro valor de cada opção prevalece. - São lidos
HostName(o alias quando ausente;%hé substituído pelo alias),User(vazio quando ausente),Port(22 quando ausente ou inválido) e o primeiroIdentityFile. Um host comIdentityFileusa essa chave privada (%dvira~); um sem ele usa autenticação por senha. - Os saltos de
ProxyJumpque são hosts do mesmo arquivo se tornam os hosts de salto da sessão (no máximo 3). Outros saltos, comouser@gateway:2222, eProxyCommandnão são suportados: o host é importado sem eles e contado na prévia. - As linhas
Includee os blocosMatchnão são seguidos e são contados na prévia. Todas as outras opções são ignoradas. - Os hosts já importados da mesma forma são ignorados como duplicatas, então importar de novo só adiciona hosts novos.