Pide tu presupuesto ya!

Configurar conexiones SSH remotas en Visual Studio Code

Visual Studio Code es un editor de texto versátil y rico en funciones que puede beneficiar tanto a los desarrolladores como a los administradores de sistemas. Puede usar VS Code para editar sus scripts de PowerShell, archivos de configuración y ejecutar comandos de consola. El SSH remoto La extensión le permite conectarse a computadoras remotas a través de SSH y editar archivos, scripts, configuraciones o ejecutar comandos en hosts remotos de Windows o Linux directamente desde VS Code instalado en su computadora.

Aquí se explica cómo configurar un cliente SSH de Visual Studio Code para conectarse a hosts remotos.

Ejecute VS Code y vaya a Extensiones ( Ctrl + Shift + X ). Ahora busque e instale el Extensión SSH remota.

Esto instala automáticamente los siguientes complementos SSH remotos: Edición de archivos de configuración y Explorador remoto (pestaña Paquete de extensión).

Seleccione Explorador remoto en el panel izquierdo de VSCode para crear una nueva conexión SSH. El asistente de conexión le pedirá que ingrese:

  • Cadena de conexión SSH: [email protected]
  • la ruta al archivo de configuración que contiene los ajustes para esta conexión (de forma predeterminada, es C:\Users\%username%\.ssh\config ).
También puede crear una nueva conexión presionando CTRL + SHIFT + P y seleccionando SSH remoto: conectarse al host.

Código de Visual Studio: conéctese al host ssh remoto

Una vez hecho esto, ahora puede conectarse al host remoto a través de SSH. Seleccione el host de la lista y haga clic en Conectar.

La primera vez que se conecta, VSCode le solicita el tipo de plataforma en el host SSH remoto (Linux/Windows/macOS) y la contraseña de conexión:

seleccione la plataforma ssh

Una vez conectado al host SSH remoto, puede editar cualquier archivo de texto directamente desde el editor de VSCode y ejecutar comandos de shell como si estuviera conectado a través de un cliente SSH (haga clic en Terminal -> Nueva terminal para abrir un indicador de consola).

Edite el archivo de configuración en el host remoto de Linux desde VSCode

Si intenta guardar un archivo en VSCode que no puede ser editado por un usuario no root (sin sudo), obtendrá el siguiente error:
Failed to save 'sshd_config': Unable to write file 'vscode-remote://ssh-remote+192.168.79.128/etc/ssh/sshd_config' (NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/etc/ssh/sshd_config').

(NoPermissions (FileSystemError): Error: EACCES: permiso denegado

Una solución a este problema es usar la extensión VSCode Guardar como root en remoto – SSH. Una vez que se instala esta extensión, puede guardar el archivo en modo sudo usando el Guardar como raíz dominio.

Tanto la autenticación basada en contraseña como la clave SSH son compatibles con SSH remoto.

Intentemos configurar la autenticación basada en clave SSH en un host remoto de Windows:

  1. Genere un par de claves SSH en el cliente: ssh-keygen -t ed25519
  2. Copie el archivo de clave pública C:\Users\%username%\.ssh\id_ed25519 en el archivo C:\Users\user1\.ssh\authorized_keys en su host remoto (aquí, usuario1 es el nombre de usuario con el que se conectará);
  3. Verifique que la siguiente opción esté habilitada en el archivo de configuración del servidor OpenSSH en Windows:
    PubkeyAuthentication yes
  4. Ahora abre el archivo C:\Users\%username%\.ssh\config que contiene la configuración de conexión de VSCode para hosts SSH. Busque el host y agregue el parámetro IdentityFile con la ruta a su archivo de clave privada:
Host 192.168.31.4
  HostName 192.168.31.4
  User root
  IdentityFile "C:\Users\user1\.ssh\id_ed25519"

Autenticación basada en clave VScode SSH

Una forma rápida de abrir el archivo de configuración es presionar F1 -> Remote-SSH: abrir el archivo de configuración de SSH.

archivo de configuración ssh remoto

Ahora la conexión al host SSH se realizará con autenticación basada en clave (no se requiere contraseña).

Puede usar la directiva LocalForward para configurar túneles SSH y reenvío de puertos. O es posible que desee utilizar el ForwardAgent y ProxyJump directivas en su lugar:

Host PublicJumpServer1
  HostName public.woshub.com
  User user1
  ForwardAgent yes

Host PrivateServer1
  HostName private.contoso.com
  User user1
  ProxyJump PublicJumpServer1
Written by

Leave a comment