Servir Terminal Remoto — um shell real sobre um WebSocket

FeatureSecurityService
Navios
3 de setembro de 2026 às 17:33 UTC
Autor
Kamo
Enviar
77f7021

Bridges um navegador para um PTY na própria máquina de dev do membro. Quadros binários são o terminal, os quadros de texto são controlados; no hop distante um HTTP 101 em uma stream prefixo de comprimento atinge o agente na porta a política de rede já Permissão, portanto não é necessária nenhuma mudança de Cílio. O primeiro WebSocket neste serviço, e deliberadamente um cru. STOMP é um message broker sobre um socket e o que viaja aqui é um fluxo de byte entre um navegador e uma shell — um envelope ao redor de cada tecla não compra nada. A autorização acontece antes do soquete. Um navegador não pode colocar um cabeçalho em uma Construtor WebSocket, então em vez de ensinar o aperto de mão para analisar ***, e o objetivo normal autenticado toma toda a decisão com a sessão em mão e mãos para a frente como um bilhete de uso único que é inútil 30 segundos várias vezes após uma utilização. Isso espelha o link KamoDesktop, que foi endurecido por exatamente esta razão: um token replayable fica na história e em Ctrl+Shift+T, e uma shell é pior nesse aspecto do que uma área de trabalho, não melhor. O aperto de mão não lê mais nada do cliente — não um nome de usuário, não um conta, apenas uma dica de tamanho os grampos do agente de qualquer maneira. A conta Linux vem de credenciaisPara ( < ID do próprio membro do chamador>), então uma solicitação não pode nomear alguém O outro escudo, e a Origem está presa ao hospedeiro a ser endereçado. Nenhuma senha é leia em tudo: o agente é raiz e cai na conta, por isso o reversível Credencial Guacamole necessidades nunca é tocado neste caminho. Auditado antes do fato, síncrono, no mesmo Registro de Acesso que já respostas "quem assinou de onde" — com IP, geo e usuário-agente, no ALTO gravidade. Uma linha que só apareceu no sucesso estaria faltando exatamente os casos Isso importa. Oito terminais por membro, porque cada um é um PTY e um thread em um VM compartilhada que foi derrubada pela pressão da memória antes. Fechar o 'socket' não mata o 'shell'; o agente executa- o sob o 'tmux' de modo a atualizar ou uma conexão descartada retorna ao trabalho ainda em execução. 21 testes: utilização única, expiração de ambos os lados da fronteira, silêncio desconhecido, tampa por membro e sua liberação, tokens não sequenciais, e o codec frame incluindo a entrega one-byte-at-a-time, um comprimento declarado absurdo, e leitura a linha de status da atualização sem engolir o fluxo por trás dela.

Todas as alterações

Como o que vês no transporte?

Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.

Começar Livre Para SempreVer Preços