SSH remoto: consejos y hacks

En una publicaci贸n anterior sobre Remote SSH, vimos c贸mo configurar una m谩quina virtual Linux y conectarse a una m谩quina virtual usando la extensi贸n Remote - SSH en Visual Studio Code. En esta publicaci贸n, hablaremos sobre 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 m谩quina virtual usando SSH, y todo desde VS Code. Si la extensi贸n a煤n no est谩 instalada, puede buscar "ssh remoto" en la pesta帽a "Extensiones" (鈬р寴X).



Despu茅s de instalar la extensi贸n, ver谩 un indicador en la esquina inferior izquierda de la barra de estado. Este indicador le dice en qu茅 contexto funciona VS Code (local o remoto). Haga clic en el indicador para mostrar una lista de comandos de extensi贸n remota.



Archivo de configuraci贸n SSH


En una publicaci贸n anterior sobre SSH remota, nos conectamos a una sola m谩quina y, cuando se le solicit贸, ingresamos "usuario @ host". Si se conecta regularmente a m煤ltiples servidores remotos o m谩quinas virtuales locales, hay una mejor manera de conectarse sin tener que recordar todos los nombres de usuario, direcciones y par谩metros de configuraci贸n adicionales.

OpenSSH admite el uso de un archivo de configuraci贸n para almacenar todas sus diversas conexiones SSH. Para usar el archivo de configuraci贸n SSH, haga clic en el indicador remoto para invocar los comandos remotos, seleccione "Abrir archivo de configuraci贸n" y seleccione el archivo que se encuentra en "Usuarios / {su nombre de usuario} /. Ssh / config".



Aqu铆 hay un ejemplo de archivo de configuraci贸n SSH:

#      SSH: 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 otras opciones de configuraci贸n que puede especificar en el formato de archivo de configuraci贸n SSH. Obtendr谩 los complementos en este archivo, y puede hacer clic en (paceEspacio) para IntelliSense para obtener m谩s informaci贸n sobre las opciones de configuraci贸n.

Opciones utilizadas anteriormente:
Anfitri贸nUn alias f谩cil de recordar para tu host.
Nombre de hostNombre de host del servidor (puede usar la direcci贸n IP del servidor).
UsuarioEl usuario que especific贸 para iniciar sesi贸n a trav茅s de SSH.
PuertoEl puerto utilizado para conectarse a trav茅s de SSH. El puerto predeterminado es 22, pero si especific贸 un puerto 煤nico, puede configurarlo aqu铆.
IdentityFileLa ubicaci贸n del archivo donde guard贸 su clave privada.
Puede agregar informaci贸n para todos los hosts que tenga. Despu茅s de guardar el archivo de configuraci贸n, puede ver estos nodos en Remote Explorer, as铆 como cualquier carpeta que abra en este nodo. Puede seleccionar un icono junto a cada host o carpeta, y se abrir谩 una nueva ventana de VS Code (instancia) y lo conectar谩 a ese host. En la captura de pantalla a continuaci贸n, estoy conectado a mi m谩quina remota "python-linux-vm", y Remote Explorer me muestra las carpetas a las que me conect茅 en el pasado, as铆 como cualquier puerto redirigido desde la m谩quina remota.



Comando proxy


A veces es posible que necesite conectarse desde su computadora de escritorio o port谩til a una computadora remota a trav茅s de la intranet de su empresa o detr谩s de un firewall. En este caso, puede usar un servidor intermedio o un cuadro de salto . Este tipo de configuraci贸n es 煤til si est谩 ejecutando un sistema seguro que est谩 configurado para aceptar conexiones SSH solo desde un conjunto fijo de hosts.

Para usar la configuraci贸n de salto de caja con la extensi贸n Remote - SSH, puede usar el par谩metro de configuraci贸n ProxyCommand . Esta configuraci贸n abrir谩 una conexi贸n SSH en segundo plano con la caja de salto y luego se conectar谩 a trav茅s de la direcci贸n IP privada al objetivo.

Puede establecer el par谩metro de configuraci贸n ProxyCommand en el archivo de configuraci贸n SSH de la siguiente manera:

 # Jump box   IP- Host jump-box HostName 52.179.157.97 User sana IdentityFile ~/.ssh/jumpbox #     IP- 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 m茅todos de autenticaci贸n distintos de la autenticaci贸n basada en clave, como la autenticaci贸n de 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 necesita 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 

Computadora remota independiente


Si est谩 limitado por un firewall o su empresa est谩 bloqueando 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 debe descargar un componente llamado VS Code Server en la m谩quina remota.

Sin embargo, ahora puede resolver este problema con un nuevo par谩metro de usuario en la extensi贸n Remota: SSH. Si habilita el par谩metro remote.SSH.allowLocalServerDownload , la extensi贸n primero instalar谩 VS Code Server en el cliente y luego lo copiar谩 al servidor a trav茅s de SCP.

Nota Actualmente es una funci贸n experimental, pero se habilitar谩 de manera predeterminada en una versi贸n futura.

Remoto - Extensi贸n nocturna SSH


Si desea probar nuevas actualizaciones y caracter铆sticas experimentales tan pronto como est茅n disponibles, instale la extensi贸n Remota - SSH todas las noches (primero quite la extensi贸n estable SSH Remota). Esta es una compilaci贸n nocturna de la extensi贸n, donde experimentamos con nuevas caracter铆sticas y configuraciones antes de agregarlas a la versi贸n estable.

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


All Articles