El SSH Agent de VSCode es ridículo
(fly.io)-
VSCode y la edición remota
- VSCode tiene una función que permite la edición remota mediante SSH.
- Muchos usuarios usan VSCode y LLM (modelos de lenguaje grandes) para generar código.
- Cuando un LLM genera código incorrecto, a eso se le llama una "alucinación", y para resolverlo es importante cerrar el ciclo entre el LLM y el entorno de ejecución mediante una configuración de "agente".
- Este proceso funciona de forma iterativa: el LLM genera código, el agente lo ejecuta, produce errores y luego esos errores se retroalimentan al LLM para repetir el ciclo.
-
Problemas en el entorno de desarrollo
- No es deseable que este proceso de desarrollo iterativo ocurra en la laptop del desarrollador.
- Como el LLM también puede afectar la configuración del sistema, conviene realizar este trabajo en una instancia limpia de Linux.
-
Emacs y Tramp
- Emacs admite un sistema de edición remota mediante un útil paquete de Elisp llamado Tramp.
- Tramp puede conectarse, a través de una sesión SSH, a un entorno interactivo capaz de ejecutar comandos del shell Bourne.
-
El enfoque de VSCode
- VSCode tiene una función similar a Tramp, pero a diferencia de Tramp, intenta una intrusión mucho más amplia en la conexión remota.
- Ejecuta un stager de fragmentos de Bash para descargar un agente, incluyendo la instalación de binarios de Node.
- El agente se ejecuta a través de SSH con port forwarding y se conecta al frontend de VSCode mediante una conexión WebSockets.
- El protocolo base de esta conexión puede explorar el sistema de archivos, editar archivos arbitrarios, iniciar su propio proceso shell PTY y mantener persistencia.
-
Preocupaciones de seguridad
- Usar indiscriminadamente VSCode para edición remota en un servidor de desarrollo puede causar problemas para proteger información sensible o la infraestructura.
- En particular, existe la preocupación de que usar la edición remota de VSCode cuando ocurre un problema en un entorno real de producción es extremadamente riesgoso.
-
Conclusión
- Internamente, en Fly.io, no es estrictamente necesario un agente complejo de este tipo para conectar directamente Fly Machine y VSCode.
- Sin embargo, por motivos del blog, investigaron el método de conexión remota de VSCode, y durante esa investigación descubrieron los hechos anteriores.
1 comentarios
Comentarios de Hacker News
Llevaba un mes intentando escribir un texto largo sobre software. A Kurt le preocupa no estar escribiendo en el blog. Decidió escribir algo simple. Parecía que podría hacerlo en 30 minutos
Cuanto más entiendes cómo funciona VSCode, más parece que se mantiene con parches temporales. Tan solo la extensión de SSH ya hace que los URI del workspace tengan dos formatos
No entiendo el problema de seguridad. Si puedes entrar a una máquina por SSH y hacer port forwarding de sockets, también puedes hacer otras cosas
Opero un servidor de red y un gran problema es que los estudiantes no entienden el cliente OpenSSH
.vscode-servercada 10 segundosLa función de edición por SSH de VSCode funciona bien. Ya no necesito usar vim, nano o micro en la máquina remota
Aprendí que es posible la ejecución remota de código. La confianza equivocada en las herramientas de desarrollo a menudo lleva al arrepentimiento
El término "SSH agent" es confuso. Normalmente significa un demonio que cachea tokens de autenticación
La gente que recomienda
sshfsno entiende las ventajas del entorno VSCode SSH RemoteMe incomoda permitir la edición remota de VSCode en un servidor de desarrollo. En un servidor de producción, todavía más
La instancia local de VSCode se convierte en un thin client, y la instancia remota maneja el trabajo pesado
sshfsu otra configuración de montaje de sistema de archivos remoto