En una
publicación anterior del
blog Remote SSH , explicamos cómo configurar una máquina virtual Linux y conectarnos a la VM usando la
extensión Remote - SSH en Visual Studio Code. En esta publicación de blog, veremos algunos consejos y trucos que puede usar para aprovechar al máximo su configuración remota.

Conéctese usando SSH remoto
La extensión de Visual Studio Code Remote - SSH le permite conectarse a una máquina remota o VM utilizando SSH, todo desde dentro de VS Code. Si aún no tiene instalada la extensión, puede buscar "ssh remoto" en la vista Extensiones (⇧⌘X).

Después de instalar la extensión, notará un indicador en la esquina inferior izquierda de la barra de estado. Este indicador le indica en qué contexto se está ejecutando VS Code (local o remoto). Haga clic en el indicador para que aparezca una lista de comandos de extensión Remota.

Archivo de configuración SSH
En la publicación anterior del blog Remote SSH, solo nos conectamos a una sola máquina y lo hicimos ingresando el "usuario @ host" cuando se le solicitó. Si inicia sesión en varios servidores remotos o máquinas virtuales locales de manera regular, hay una mejor manera de conectarse sin tener que recordar todos los nombres de usuario, direcciones y opciones de configuración adicionales.
OpenSSH admite el uso de un
archivo de configuración para almacenar todas sus diferentes conexiones SSH. Para usar un archivo de configuración SSH, haga clic en el indicador remoto para que aparezcan los comandos remotos, elija Abrir archivo de configuración y seleccione el archivo que sigue la ruta "Usuarios / {su nombre de usuario} /. Ssh / config".

Aquí hay un ejemplo de un archivo de configuración SSH:
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config Host python-linux-vm HostName <vm address> User sana IdentityFile ~/.ssh/id_python_vm Host node-vm HostName <vm address> User sana Port 5522 IdentityFile ~/.ssh/id_node_vm
Hay muchas más
opciones de configuración que puede especificar en el formato de archivo de configuración SSH. Obtendrá terminaciones y coloraciones en este archivo y puede presionar (paceEspacio) para IntelliSense para obtener más información sobre las opciones de configuración.
Las opciones utilizadas anteriormente son:
Puede agregar la información de todos los hosts que tiene. Una vez que haya guardado el archivo de configuración, podrá ver esos hosts en el Explorador remoto, así como cualquier carpeta que haya abierto en ese host. Puede seleccionar el icono al lado de cada host o carpeta y abrirá una nueva ventana de VS Code (instancia) y lo conectará a ese host. En la siguiente captura de pantalla, estoy conectado a mi máquina remota "python-linux-vm" y el Explorador remoto me muestra las carpetas a las que me he conectado en el pasado, así como los puertos reenviados desde la máquina remota.

Comando proxy
A veces es posible que necesite conectarse desde su computadora de escritorio o portátil a una máquina remota a través de la Intranet de su empresa o detrás de un firewall. En este caso, puede estar utilizando un servidor intermedio o un
cuadro de salto . Este tipo de configuración es útil si está trabajando dentro de un sistema seguro que está configurado para aceptar solo conexiones SSH de un conjunto fijo de hosts.
Para usar una configuración de salto de caja con la extensión Remote - SSH, puede usar la opción de configuración
ProxyCommand
. Esta configuración abrirá una conexión SSH en segundo plano al cuadro de salto y luego se conectará a través de una dirección IP privada al objetivo.
Puede configurar la opción de configuración
ProxyCommand
en el archivo de configuración SSH de esta manera:
# Jump box with public IP address Host jump-box HostName 52.179.157.97 User sana IdentityFile ~/.ssh/jumpbox # Target machine with private IP address Host target-box HostName <IP address of target> User sana IdentityFile ~/.ssh/target ProxyCommand ssh -q -W %h:%p jump-box
Controlmaster
Si se conecta a un host SSH remoto utilizando otros métodos de autenticación además de la autenticación basada en clave, como dos factores, basada en contraseña o una clave SSH con una frase de contraseña, es posible que deba ingresar la información requerida varias veces.
En lugar de abrir múltiples conexiones SSH, puede usar la opción
ControlMaster
(solo en clientes macOS / Linux) para reutilizar una conexión existente y reducir la cantidad de veces que debe ingresar su frase de contraseña.
Para usar esta función, agregue lo siguiente a su archivo de configuración SSH:
Host * ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h-%p ControlPersist 600
Máquina remota sin conexión
Si está restringido por un firewall o su compañía bloquea sus máquinas virtuales y no pueden conectarse a Internet, la extensión Remote - SSH no podrá conectarse a su máquina virtual porque VS Code necesita descargar un componente llamado VS Code Server a la máquina remota.
Sin embargo, ahora puede resolver este problema mediante una nueva
configuración de usuario en la extensión Remote - SSH. Si habilita la configuración
remote.SSH.allowLocalServerDownload
, la extensión instalará primero el VS Code Server en el cliente y luego lo copiará al servidor a través de SCP.
Nota: Actualmente, esta es una característica experimental, pero se activará de forma predeterminada en la próxima versión.
Remoto - Extensión nocturna SSH
Si está interesado en probar nuevas actualizaciones y características experimentales tan pronto como estén disponibles, instale la
extensión remota - SSH Nightly (desinstale primero la extensión estable Remote-SSH). Esta es la versión nocturna de la extensión donde experimentamos con nuevas características y configuraciones antes de lanzarlas a la versión estable.