O SSH Agent do VSCode é absurda
(fly.io)-
VSCode e edição remota
- O VSCode tem um recurso que oferece suporte à edição remota via SSH.
- Muitos usuários estão usando VSCode e LLMs (modelos de linguagem de grande porte) para gerar código.
- Quando um LLM gera código incorreto, isso é chamado de "alucinação", e para resolver isso é importante fechar o loop entre o LLM e o ambiente de execução por meio da configuração de um "agente".
- Esse processo funciona de forma que o LLM gera o código, o agente executa o código, produz erros, e esses erros são enviados de volta ao LLM como feedback, repetindo o ciclo.
-
Problemas no ambiente de desenvolvimento
- Não é desejável que esse processo iterativo de desenvolvimento aconteça no notebook do desenvolvedor.
- Como o LLM também pode afetar a configuração do sistema, é melhor realizar esse tipo de trabalho em uma instância Linux limpa.
-
Emacs e Tramp
- O Emacs oferece suporte a um sistema de edição remota por meio de um útil pacote Elisp chamado Tramp.
- O Tramp pode se conectar, por uma sessão SSH, a um ambiente interativo capaz de executar comandos do shell Bourne.
-
A abordagem do VSCode
- O VSCode tem uma funcionalidade semelhante à do Tramp, mas, ao contrário do Tramp, tenta uma intrusão mais ampla na conexão remota.
- Ele executa um stager de snippets Bash para baixar um agente, incluindo a instalação de binários do Node.
- O agente é executado por meio de SSH com encaminhamento de portas e se conecta ao frontend do VSCode por uma conexão WebSockets.
- O protocolo básico dessa conexão pode navegar pelo sistema de arquivos, editar arquivos arbitrários, iniciar seus próprios processos de shell PTY e manter persistência.
-
Preocupações de segurança
- Usar indiscriminadamente o VSCode em um servidor de desenvolvimento para edição remota pode causar problemas para proteger informações sensíveis ou a infraestrutura.
- Há preocupação, em especial, de que usar a edição remota do VSCode quando ocorre um problema em um ambiente de produção real é extremamente arriscado.
-
Conclusão
- Internamente, na Fly.io, um agente complexo desse tipo não é necessariamente indispensável para conectar diretamente Fly Machines e VSCode.
- No entanto, por motivos de blog, acabaram investigando o método de conexão remota do VSCode, e no processo descobriram os fatos acima.
1 comentários
Comentários do Hacker News
Eu estava tentando escrever um texto longo sobre software há um mês. Kurt está preocupado porque não escreve no blog. Decidi escrever algo simples. Achei que conseguiria em 30 minutos
Quanto mais entendo como o VSCode funciona, mais parece que ele é mantido com gambiarra. Só de olhar a extensão SSH, o URI do workspace tem dois formatos
Não consigo entender o problema de segurança. Se você consegue acessar uma máquina por SSH e encaminhar sockets, também pode fazer outras coisas
Eu administro um servidor de rede, e um grande problema é que os estudantes não entendem o cliente OpenSSH
.vscode-servera cada 10 segundosO recurso de edição via SSH do VSCode funciona bem. Passei a não usar vim, nano e micro na máquina remota
Aprendi que é possível executar código remotamente. Confiar demais em ferramentas de desenvolvimento muitas vezes leva a arrependimento
O termo "agente SSH" é confuso. Normalmente significa um daemon que faz cache de tokens de autenticação
Quem recomenda
sshfsnão entende as vantagens do ambiente VSCode SSH RemotePermitir edição remota do VSCode em um servidor de desenvolvimento me deixa desconfortável. Em um servidor de produção, mais ainda
A instância local do VSCode vira um thin client, e a instância remota lida com o trabalho pesado
sshfsou outra configuração de montagem de sistema de arquivos remoto