Ssh-agent
Este tutorial te guía a través de la creación y conexión a una máquina virtual (VM) en Azure usando la extensión Visual Studio Code Remote – SSH. Crearás una aplicación web Node.js Express para mostrar cómo puedes editar y depurar en una máquina remota con VS Code igual que si el código fuente fuera local.
Si no tienes una máquina virtual Linux existente, puedes crear una nueva VM a través del portal de Azure. En el portal de Azure, busque «Máquinas Virtuales», y elija Añadir. A partir de ahí, puede seleccionar su suscripción a Azure y crear un nuevo grupo de recursos, si no tiene ya uno.
Ahora puedes especificar los detalles de tu máquina virtual, como el nombre, el tamaño y la imagen base. Elige Ubuntu Server 18.04 LTS para este ejemplo, pero puedes elegir versiones recientes de otras distros de Linux y mirar los servidores SSH soportados por VS Code.
Hay varios métodos de autenticación en una VM, incluyendo un par de claves públicas/privadas SSH o un nombre de usuario y una contraseña. Recomendamos utilizar la autenticación basada en claves (si utiliza un nombre de usuario/contraseña, la extensión le pedirá que introduzca sus credenciales más de una vez). Si estás en Windows y ya has creado claves con PuttyGen, puedes reutilizarlas.
«ssh -x» comando
El protocolo Secure Shell (SSH) es un protocolo de red criptográfico para operar servicios de red de forma segura a través de una red no segura.[1] Sus aplicaciones más notables son el inicio de sesión remoto y la ejecución de línea de comandos.
Las aplicaciones SSH se basan en una arquitectura cliente-servidor, que conecta una instancia de cliente SSH con un servidor SSH[2]. SSH funciona como un conjunto de protocolos en capas que comprende tres componentes jerárquicos principales: la capa de transporte proporciona autenticación, confidencialidad e integridad del servidor; el protocolo de autenticación del usuario valida al usuario ante el servidor; y el protocolo de conexión multiplexa el túnel cifrado en múltiples canales de comunicación lógicos[1].
SSH fue diseñado en sistemas operativos tipo Unix, como reemplazo de Telnet y de los protocolos de shell remotos de Unix no seguros, como el Berkeley Remote Shell (rsh) y los protocolos relacionados rlogin y rexec, que utilizan todos ellos la transmisión insegura y en texto plano de tokens de autenticación.
SSH puede ser utilizado en varias metodologías. De la manera más sencilla, ambos extremos de un canal de comunicación utilizan pares de claves públicas y privadas generadas automáticamente para cifrar una conexión de red, y luego utilizan una contraseña para autenticar al usuario.
Opción Ssh -y
SSH significa Secure Shell es un protocolo para acceso remoto seguro y otros servicios de red seguros sobre una red insegura1. Vea Wikipedia – Secure Shell para información general y ssh, lsh-client o dropbear para la implementación de software de SSH de las cuales OpenSSH es la más popular y más usada2. SSH reemplaza los servicios sin cifrado como telnet,rlogin y rsh y agrega muchas más características. En este documento usamos el conjunto de comandos OpenSSH, también se asumirá que estas dos variables están definidas: equipo_remoto=<el equipo remoto>
usuario_remoto=<tu nombre de usuario en el $equipo_remoto>Así que, si quieres usar la receta de abajo, primero configura esas variables al nombre del equipo remoto y el nombre de usuario en ese equipo remoto. Luego corta y pega los comandos de más abajo y debería funcionar.equipo_remoto podría ser una dirección IP.
Una de las funciones de ssh es utilizar un par de claves privadas/públicas para conectarse a un host remoto. Este método le permite conectarse a un host remoto sin tener que escribir su contraseña cada vez. Para ello debes generar un par de claves privadas/públicas en tu máquina local y depositar la clave pública en el host remoto. Para generar la clave, utilice el programa ssh-keygen como sigue ssh-keygen -t rsaEste programa genera un par de claves privadas/públicas en el directorio ~/.ssh. El programa primero pide los archivos de destino para las claves, por defecto ubicados en ~/.ssh. Después solicita una frase de contraseña. Nota: Se recomienda no dejar la frase de contraseña vacía. Un atacante que se haga con tu clave privada puede conectarse a los hosts donde has depositado tu clave pública ya que la frase de contraseña está vacía. Elija una frase de contraseña larga y compleja. Tu clave privada es id_rsa (no se la des a nadie más), la clave pública es id_rsa.pub. Copias tu clave pública a un host remoto con el comando ssh-copy-id ssh-copy-id -i ~/.ssh/id_rsa.pub $remote_user@$remote_hostAhora puedes conectarte simplemente al host remoto y se te pide la frase de paso. Una vez hecho esto, te conectas al host remoto. En caso de una nueva conexión, la frase de contraseña no se pide de nuevo durante toda la sesión.
Comando Ssh
Conéctate a tus repositorios Git a través de SSH en macOS, Linux o Windows para conectarte de forma segura usando autenticación HTTPS. En Windows, recomendamos el uso de Git Credential Manager o Personal Access Tokens.
La autenticación de clave pública SSH funciona con un par asimétrico de claves de cifrado generadas. La clave pública se comparte con Azure DevOps y se utiliza para verificar la conexión ssh inicial. La clave privada se mantiene segura en su sistema.
Este comando produce las dos claves necesarias para la autenticación SSH: su clave privada ( id_rsa ) y la clave pública ( id_rsa.pub ). Es importante no compartir nunca el contenido de su clave privada. Si la clave privada es
Sin embargo, esto no funciona con Azure DevOps por razones técnicas relacionadas con el protocolo SSH y cómo están estructuradas nuestras URLs Git SSH. Azure DevOps aceptará ciegamente la primera clave que el cliente proporcione durante la autenticación. Si esa clave no es válida para el repositorio solicitado, la solicitud fallará con el siguiente error:
Para Azure DevOps, tendrá que configurar SSH para utilizar explícitamente un archivo de claves específico. Una forma de hacer esto es editar su archivo ~/.ssh/config (por ejemplo, /home/jamal/.ssh o C:\Nsers\Jamal\Nssh) como sigue: