Bienvenido a la última entrega de la serie de publicaciones de blog A Windows Guy in a Linux World, en la que aprenderá a conectar VS Code y un host SSH remoto. Si ha estado siguiendo la serie, a estas alturas ya debería tener todas las herramientas y el conocimiento para comenzar a administrar de forma remota sus máquinas Linux (incluida la edición de archivos).
¿No eres un lector? ¡Mira este video tutorial relacionado! ¿No ve el video? Asegúrate de que tu bloqueador de anuncios esté deshabilitado.Consulta las publicaciones anteriores de esta serie:
- Permisos de usuario y archivo
- YaST y el escritorio
- Comandante de medianoche
Las herramientas cubiertas anteriormente son útiles pero no se sienten como Windows. Las herramientas de Linux pueden parecer extrañas y difíciles de usar en comparación con una experiencia nativa de Windows. En este artículo final de una serie de cinco partes, aprenderá cómo editar archivos de forma nativa en su máquina Windows usando Visual Studio (VS) Code para una experiencia más moderna.
Requisitos
Para seguir los ejemplos proporcionados en esta publicación, asegúrese de tener lo siguiente:
- Código de Visual Studio para Windows. Esta guía usará la versión 1.5.1.1
- Windows 10 (se necesita SSH y viene preinstalado)
- Un host OpenSUSE con SSH habilitado y Midnight Commander instalado
La necesidad de un gran entorno de edición
Linux no tiene un registro central. A diferencia de Windows, prácticamente todo about Linux gira en torno a los archivos de configuración. Cada cambio que realiza en una GUI, cada casilla que marca en una interfaz web, cada cambio de configuración que realiza, hay un archivo en alguna parte que refleja esa configuración.
Debido a que los archivos de configuración son tan importantes en Linux, necesita un excelente editor de texto. Linux tiene algunos buenos, incluido el editor de texto Midnight Commander (conocido como mcedit
) cubierto anteriormente.
Sin embargo, esta serie es para trabajar en Linux desde la perspectiva de un usuario de Windows. Windows tiene (posiblemente) el mejor editor de texto en el mercado. Aún mejor:es totalmente compatible con el protocolo remoto de Linux (SSH).
Visual Studio Code:el editor de texto preferido de Microsoft
Microsoft crea un editor de texto increíblemente poderoso:Visual Studio Code. VS Code se ha hecho cargo de casi todos los demás editores de texto en el ecosistema de Microsoft para ser la forma principal de editar archivos en Windows. Es posible que ya esté familiarizado con Visual Studio Code:se trata con frecuencia en este sitio.
Visual Studio Code es técnicamente un entorno de desarrollo integrado (IDE), así como un editor consciente de la sintaxis. Esto significa que puede ejecutar comandos de shell directamente dentro del editor y usarlo para depurar sus scripts.
No solo puede usar VS Code para trabajar con archivos localmente, sino que VS Code también admite la edición remota de archivos a través de SSH. La edición remota de archivos significa que, en lugar de navegar a través de la línea de comandos a través de un indicador SSH, puede abrir, explorar y editar archivos directamente sin salir de VS Code.
Instalación y conexión de VS Code y la extensión SSH remota
VS Code no viene con soporte SSH listo para usar, pero al usar el poder del mercado de extensiones, puede agregar esta funcionalidad. Para hacerlo, debe instalar la extensión SSH remota.
- En VS Code, debería ver una barra lateral a la izquierda que parece un bloque. Haga clic en ese icono para que aparezca el cuadro de búsqueda de Extension Marketplace.
2. Escriba ssh para buscar el Remoto – SSH extensión como se muestra a continuación. La extensión oficial de Microsoft debería ser el primer resultado.
3. Haga clic en el botón verde Instalar junto al Remoto – SSH extensión para comenzar a instalarlo.
Una vez instalado, debería ver inmediatamente un nuevo ícono en la barra lateral llamado Remote Explorer Como se muestra abajo.
En este punto, ya está listo para comenzar a agregar su sesión SSH.
Conexión a un servidor de destino con SSH en VS Code
¡Veamos ahora cómo puede conectarse a su máquina Linux remota a través de SSH y editar algunos archivos con VS Code!
- Haga clic en el Explorador remoto icono que acaba de instalar para abrir el panel del explorador remoto.
2. Haga clic en + símbolo en los objetivos SSH para agregar un nuevo servidor SSH al que conectarse como se muestra a continuación.
3. Ingrese ssh
en el indicador de su máquina Linux de destino, como se describe en los requisitos previos. Para el siguiente ejemplo, el usuario es homelab
y la ip es 172.25.179.190
.
4. Ahora debería ver un mensaje en blanco que se muestra a continuación preguntando dónde guardar los datos de configuración. Este es el archivo que describe todas las conexiones guardadas, en caso de que tengamos varios dispositivos Linux a los que nos conectemos. Para este ejemplo, puede dejar el cuadro en blanco para guardar en la ubicación predeterminada. Pulse Intro para guardar la ubicación predeterminada (C:\users\
5. Finalmente, haga clic con el botón derecho en el destino SSH recién creado y haga clic en Conectar al host en la ventana actual. Esta acción se conectará al objetivo a través de SSH y configurará VS Code para trabajar de forma remota.
Si todo salió bien, ahora debería poder comenzar a configurar SSH inmediatamente en la siguiente sección.
Si se está quedando atascado en esta etapa, asegúrese de que realmente puede conectarse mediante SSH a su computadora de destino. La forma más fácil de probar es abrir una ventana de comandos (en Windows 10) y probar con
ssh
. Si eso no funciona para usted, VSCode tampoco podrá conectarse.@
Configuración de SSH en su primera conexión
Una vez que se haya conectado al servidor SSH remoto por primera vez, deberá realizar una configuración inicial. Como puede ver a continuación, VS Code le preguntará el tipo de conexión que está realizando (Linux) y le pedirá una contraseña. Después de un breve retraso, debería ver que la esquina inferior izquierda se vuelve verde y dice SSH:
¡Ya está todo configurado y listo para comenzar a trabajar con el sistema de archivos remoto!
Abrir una carpeta y archivos remotos
Una vez que se haya conectado por primera vez, puede comenzar a abrir archivos en el servidor Linux remoto a través de SSH. Para hacerlo:
- Haz clic en la barra lateral superior izquierda llamada Explorer panel.
2. Haga clic en el botón azul Abrir carpeta botón para abrir una carpeta remota.
3. A continuación, elija una carpeta para abrir. En el siguiente ejemplo, hacemos referencia a la carpeta /home/
Es posible que reciba un aviso para ingresar su contraseña nuevamente cuando seleccione la carpeta.
Una vez que haya abierto una carpeta, debería obtener una representación visual del contenido de la carpeta remota en el panel Explorador de archivos que se muestra a continuación.
La carpeta base en el panel Explorador de archivos se conoce como su área de trabajo . El espacio de trabajo es la carpeta que abrió en el paso anterior. Puede ver a continuación que el panel Explorador de archivos ahora muestra el contenido de la carpeta que abrió en el último paso.
Ahora puede abrir cualquier archivo (como el .bashrc en la captura de pantalla) y VS Code lo mostrará automáticamente en el panel principal, ¡con resaltado de sintaxis!
Técnicamente puede abrir la carpeta raíz (
/
) como espacio de trabajo y, por lo tanto, tener acceso a todo el sistema de archivos (lea más sobre el sistema de archivos en la segunda parte de esta serie). Sin embargo, VS Code tendrá problemas para buscar cambios automáticamente si el espacio de trabajo de destino es demasiado grande. VSCode arrojará una advertencia y es posible que deba actualizar manualmente para ver los cambios en el sistema de archivos.
Elegir una carpeta de trabajo diferente
¿Qué sucede si abre una carpeta y los archivos con los que necesita trabajar están en una carpeta diferente? En este caso, puede abrir otra carpeta "base" o incluso agregar carpetas a su espacio de trabajo.
Si desea abrir una carpeta completamente separada (cerrando la última), puede hacerlo navegando al Archivo menú, haciendo clic en Abrir carpeta, y elegir su nueva carpeta. Esta acción cerrará VS Code y abrirá un nuevo espacio de trabajo.
Si desea mantener abierta la otra carpeta y agregar otra carpeta a su espacio de trabajo, vaya a Archivo menú de nuevo y esta vez, haga clic en Agregar carpeta al espacio de trabajo . Desde aquí puede agregar nuevas carpetas al espacio de trabajo existente.
Puede ver una explicación de esto en la siguiente captura de pantalla.
Ahora que ha aprendido cómo conectarse a un objetivo y abrir la ventana del explorador en una carpeta, veamos lo que realmente puede hacer con el explorador de archivos.
Transferencia de archivos entre su host y destino
VS Code es increíblemente poderoso, y el panel del explorador es útil para algo más que explorar y editar archivos remotos. ¡También puede usarlo para cargar y descargar archivos directamente a su servidor!
Cargar y descargar archivos es tan simple como arrastrar y soltar. Por ejemplo, para subir un archivo local al servidor remoto:
- Navegue a la carpeta local que contiene los archivos que desea cargar en el servidor remoto.
- Arrastre los archivos desde la ventana local del explorador de Windows al dolor del Explorador de archivos en VS Code.
¡Listo!
Para descargar un archivo:
- Navegue hasta los archivos que desea descargar desde el servidor remoto.
- Seleccione los archivos, haga clic derecho sobre ellos y elija Descargar .
- Elija un lugar para guardarlos y listo, ha descargado los archivos.
Puede ver estos pasos en acción a continuación.
También puede cortar, copiar, arrastrar y soltar, crear nuevos archivos/carpetas y hacer la mayoría de lo que espera de una ventana del explorador. Todo sucede de forma remota en el servidor.
Uso de VS Code como terminal SSH con todas las funciones
VS Code todavía tiene un truco SSH bajo la manga; ¡también puede usar VS Code como un terminal SSH estándar!
Mientras está conectado a un objetivo SSH, haga clic en Ver menú y elige Termina como se muestra a continuación. VS Code abrirá una sesión SSH remota.
Puede hacer todo lo que puede hacer en la terminal usando SSH directamente. Eso incluso incluye el uso de Midnight Commander, ¡completo con soporte para mouse! Puede ver el lanzamiento de Midnight Commander a continuación.
VS Code usa el cliente SSH nativo de Windows bajo el capó (7.7p1 a partir de Windows 10 v2009). Para obtener compatibilidad con el mouse, necesitará el cliente SSH de Microsoft (8.1p1 al momento de escribir este artículo). Puede leer más sobre eso en la Parte IV de esta serie .
Editar configuraciones protegidas y modificar archivos protegidos
Hay un inconveniente sobre el uso de VS Code en comparación con la línea de comando:no modificará los archivos que requieren derechos administrativos para cambiar. Estos son archivos que tienes que abrir con sudo
Para editar. Puede solucionar este problema de dos maneras:
sudo es la forma de elevar los comandos en Linux. Es equivalente a UAC en Windows. En lugar de abrir un símbolo del sistema elevado, ejecuta comandos con
sudo
al frente.
Al igual que una ventana SSH normal, también puede ejecutar sudo
comandos dentro de VS Code Terminal. Sin embargo, VS Code no puede guardar archivos que requieran derechos administrativos para cambiar. Pero tú puedes use una herramienta llamada Midnight Commander (con sudo
para crear una ventana del explorador dentro la línea de comando VSCode con derechos administrativos.
En el terminal VS Code de la sesión SSH remota, ejecute sudo mc
para abrir la herramienta de gestión de archivos Midnight Commander. Una vez aquí, navegue hasta los archivos protegidos que desea editar y cámbielos como desee. No deberías tener problemas para hacerlo.
Las acciones se muestran a continuación.
La desventaja de usar
sudo mc
para cambios administrativos es bastante grande:está completamente restringido a usar la terminal VS Code. Esto significa que la mayoría de las funciones gráficas de VS Code, como el panel del explorador e incluso la ventana de edición principal, no se pueden usar. Está completamente restringido a la ventana de la terminal para la navegación.
El uso de la solución Midnight Commander en VS Code funcionará, pero no debería editar archivos protegidos que con frecuencia. Usando sudo mc
solo debe ser necesario para hacer un pequeño cambio o realizar una configuración única.
Si tiene archivos en los que está trabajando regularmente, debe ser incluido en la propiedad o grupo de esa carpeta. Hacerlo niega la necesidad de que se requieran derechos administrativos.
Publicación relacionada:Configuración de una conexión de intercambio de claves SSH con VS Code y SSH
Resumen
Gracias a todos los que se quedaron con esta serie de cinco partes. Con la configuración de VS Code, ahora debería estar listo para continuar su viaje por el mundo de Linux.
Con los conceptos definidos, ahora tiene una base sólida para comenzar a ramificarse en las partes más prácticas de Linux:ejecutar servidores, aprender a acoplar y configurar su propia infraestructura. ¡Estén atentos y esperen que aparezcan muchos más proyectos relacionados con Linux en el futuro!