SSH remoto: consejos y trucos

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:
AnfitriónUn alias fácil de recordar para su máquina host.
Nombre de hostEl nombre de host del servidor (puede usar la dirección IP del servidor).
UsuarioEl usuario que ha especificado para iniciar sesión en la máquina a través de SSH.
PuertoEl puerto utilizado para conectarse a través de SSH. El puerto predeterminado es 22, pero si ha especificado un puerto único, puede configurarlo aquí.
IdentityFileLa ubicación del archivo donde almacenó su clave privada.
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.

Source: https://habr.com/ru/post/472184/


All Articles