Parte 1.1: Crear una máquina virtual Linux en Azure y conectarse a ella

Se aplica a:   .NET Core 2.1, .NET Core 3.1, .NET 5

Objetivo de esta parte

Esta parte del aprendizaje está destinada a usuarios que no tienen ninguna experiencia de Linux. Trata los siguientes temas:

  • Cómo usar Windows Azure para crear una máquina virtual Linux.

    Nota

    Puede omitir este paso si ya tiene una máquina virtual Linux que usar en el aprendizaje.

  • Cómo conectarse a una máquina virtual Linux desde un Windows equipo basado en linux.

  • Cómo administrar tareas básicas cuando se trabaja en Linux, como crear y eliminar archivos y carpetas, ejecutar comandos como usuario con privilegios e instalar aplicaciones mediante administradores de paquetes.

Para asegurarse de que todos los laboratorios de esta guía funcionan según lo previsto, se recomienda usar una distribución lts de Ubuntu 18.04 porque esa es la distribución que se usó para crear los laboratorios.

Esta parte (1.1) contiene los siguientes pasos:

Si está familiarizado con Linux, es posible que desee omitir esta parte por completo e ir directamente a la parte 1.2:directorios especiales de Linux, usuarios elevados y administradores de paquetes .

Crear una máquina virtual Linux en Windows Azure

La primera decisión es qué distribución de Linux desea usar. Hay diferentes sabores y distribuciones del sistema operativo Linux, comúnmente denominados "distros". De acuerdo con este Project documentación de Linux, hay muchas similitudes entre las distintas distribuciones. Los comandos que se usan en esta serie son casi los mismos para cada distro de Linux, aunque los administradores de paquetes de instalación pueden ser diferentes. Sin embargo, las instrucciones generales serán las mismas independientemente del distro que se utilice.

Nota

Como se explica en Máquinas virtuales Linux en Azure,Microsoft Azure admite varias distribuciones populares de Linux proporcionadas y mantenidas por nuestros partners. Puede encontrar distribuciones como Red Hat Enterprise, CentOS, SUSE Linux Enterprise, Debian, Ubuntu, CoreOS, RancherOS, FreeBSD y otras en Azure Marketplace.

Las instrucciones para crear una máquina virtual Linux en Azure se explican claramente en QuickStart: Create a Linux virtual machine in the Azure Portal.

Nota

En este artículo también se proporcionan instrucciones para conectarse a la máquina virtual e instalar el servidor web Nginx. Es su elección seguir estas instrucciones e instalar Nginx. Sin embargo, no tiene que decidirlo todavía porque la instalación y la configuración de Nginx se tratan en la siguiente parte.

Este tutorial no duplicará esos pasos porque las instrucciones son lo suficientemente claras. Sin embargo, es importante resaltar algunos puntos clave sobre cómo crear la máquina virtual.

Autenticación

Puede elegir entre los siguientes tipos de autenticación al crear la máquina virtual:

  • Conectar mediante una contraseña
  • Conectar mediante una clave pública SSH

Aunque el uso de la autenticación con contraseña es aceptable en el contexto de este aprendizaje, se recomienda usar la opción de clave pública SSH porque proporciona una mejor seguridad. Además, esta guía usa esta opción de forma predeterminada al conectarse a una máquina virtual Linux.

Azure genera automáticamente un par de claves SSH y le permite guardarlo en el disco para que pueda usarlo más adelante cuando se conecte a la máquina virtual Linux. Esta acción simplifica el proceso de conexión.

Seleccione la clave pública SSH y generar nuevas opciones de par de claves al crear la cuenta de administrador.

Captura de pantalla de la cuenta de administrador.

Para el campo Nombre de usuario, puede elegir el nombre que desee entre los nombres que proporcionó al crear la máquina virtual.

Reglas de puerto de entrada

Para habilitar la conectividad con la máquina virtual recién creada, seleccione SSH y HTTP para las reglas de puerto de entrada. Esto se debe a que usará el protocolo SSH para conectarse a la máquina virtual y usará el protocolo HTTP cuando acceda ASP.NET Core la aplicación que se ejecuta en Linux.

Captura de pantalla de las reglas de puerto entrantes.

Guardar la clave privada

Dado que la opción de clave pública SSK está seleccionada, verá el siguiente mensaje al crear la máquina virtual:

Generar nuevo par de claves

Captura de pantalla del nuevo par de teclas.

Seleccione Descargar clave privada y crear recurso y, a continuación, guarde la clave privada en el disco local. La extensión del archivo es .pem (Privacy-Enhanced Mail).

Nota

La clave privada se usa para abrir la puerta cuando se conecta a la máquina virtual Linux. Por lo tanto, no debe compartir esta clave con otras personas.

Determinar la dirección IP

Después de crear la máquina virtual, vaya a la página de recursos y determine y anote la dirección IP pública de la máquina virtual. Usará esta dirección IP para conectarse a la máquina virtual.

Nota

Se recomienda usar una dirección IP estática porque es posible que tenga que reiniciar el equipo durante las pruebas. El uso de una DIRECCIÓN IP pública dinámica hará que se asigne otra dirección IP a la máquina virtual después de reiniciarla.

Conectar a la máquina virtual Linux

Ahora que tiene una máquina virtual Linux y conoce su dirección IP, también tiene la clave privada para autenticarse mediante la autenticación de clave pública SSH y puede iniciar sesión. Es un buen momento para analizar algunas terminologías que encontrará al conectarse a la máquina virtual Linux.

No usará una GUI para conectarse a la máquina virtual Linux y administrarla. En su lugar, usará un terminal para conectarse y un shell para ejecutar comandos.

El UNIX terminal

El término "terminal" se basa en los primeros modelos de equipo que ocupaban toda una sala y se controlaban en un terminal físico a través de lectores de tarjetas de punzones y, posteriormente, teclados. Hoy en día, un terminal es una representación de software de terminales físicos. PuTTY, por ejemplo, es un terminal.

El UNIX shell

El UNIX shell es una interfaz entre el usuario y UNIX sistemas operativos parecidos. Un usuario está en un shell tan pronto como el usuario inicia sesión en el sistema. El shell proporciona un intérprete de línea de comandos (CLI) que lee y ejecuta comandos y scripts para controlar el sistema y, a continuación, muestra el resultado resultante.

El shell también se conoce como "línea de comandos" o "terminal", y estos términos son intercambiables. El shell proporciona algunos comandos y un lenguaje de programación que puede usar para escribir scripts. Hay varias implementaciones de shell diferentes. incluyendo el popular Bash.

En este artículo se tratan las siguientes opciones de conexión:

  • Uso del terminal SSH de PowerShell
  • Uso del terminal SSH PuTTy

Conectar mediante el terminal SSH de PowerShell

Si se está ejecutando en Windows 10, versión 1809 versión posterior, puede usar el cliente SSH de PowerShell integrado. Para conectarse a una máquina virtual, abra PowerShell y ejecute un comando SSH con el siguiente formato:

ssh -i <path to .pem private key file> <user>@<host>

Por ejemplo:

ssh -i d:\Learn\Linux\myPrivateKey.pem <UserName>@127.0.0.1

Si nunca se ha conectado a este servidor antes, recibirá el siguiente mensaje de advertencia:

La autenticidad del host ' <HostName> ' no se puede establecer.

Captura de pantalla del mensaje de advertencia.

Si escribe sí, recibirá la siguiente advertencia más:

Captura de pantalla del mensaje de advertencia adicional.

Básicamente, el cliente SSH quiere que la clave privada sea "más privada". En otras palabras, la clave privada que se encuentra en el archivo .pem es accesible para otros usuarios del equipo al que se está conectando. La expectativa es que una clave privada solo sea accesible para el usuario que inicializará las conexiones a la máquina virtual Linux.

Para solucionar este problema, cambie los permisos en ese archivo de clave privada. Para ello, siga estos pasos:

  1. Busque y haga clic con el botón secundario en el archivo de clave privada, seleccione Propiedades y, a continuación, seleccione la pestaña Seguridad. En este ejemplo, verá los siguientes permisos que se heredan de la carpeta.

    Captura de pantalla de la pestaña seguridad.

    En este ejemplo, solo desea que el grupo SYSTEM y su cuenta tengan acceso a este archivo. Dado que los permisos se heredan de la carpeta, debe deshabilitar esa herencia antes de poder editar los permisos. Seleccione Avanzadas y, a continuación, seleccione Deshabilitar herencia. Se le pedirá la siguiente pregunta:

    ¿Qué desea hacer con los permisos heredados actuales?

    Captura de pantalla de herencia de bloques.

    Seleccione Convertir permisos heredados en permisos explícitos en este objeto.

  2. Quite todos los grupos menos SYSTEM y, a continuación, agregue su propia cuenta. Los siguientes son los permisos finales que se conceden para la clave privada.

    Captura de pantalla de la pestaña de seguridad en la propiedad pem.

  3. Vuelva a intentar conectarse con el mismo comando SSH. Esta vez, la conexión debe establecerse sin errores.

    Captura de pantalla del comando ssh.

Conectar mediante PuTTY

PuTTY es uno de los terminales más populares para conectarse a una máquina virtual Linux. Puede descargar e instalar PuTTY de forma gratuita Windows en el equipo cliente.

PuTTY es fácil de usar. Sin embargo, tenga en cuenta que PuTTY no acepta el formato PEM para la clave privada. Por lo tanto, debe convertir la clave al formato que PuTTY espera ver (PPK). Afortunadamente, la conversión del formato PEM también es fácil porque el generador de claves PuTTY (PuTTYgen) está instalado junto con el software de terminal.

Para convertir archivos, siga estos pasos:

  1. Inicie PuTTYgen y asegúrese de que RSA está seleccionado como el tipo de clave que se va a generar.

  2. Seleccione Cargar para seleccionar el archivo de clave privada que tiene la extensión .pem.

    Captura de pantalla del generador de claves de putty.

  3. Asegúrese de que todos los archivos están seleccionados porque la selección predeterminada de PuTTYgen es PPK.

    Captura de pantalla de todos los archivos.

  4. Busque y abra el archivo PEM deseado. Debería ver el siguiente mensaje que indica que PuTTYgen pudo importar la clave. Ahora, puede guardar la clave privada en formato PPK.

    Captura de pantalla del aviso en el generador de claves de putty.

  5. Seleccione Aceptar y, a continuación, seleccione Guardar clave privada:

    Captura de pantalla de guardar clave privada.

    PuTTYgen le pedirá que confirme que desea guardar la clave sin una frase de contraseña. Seleccione y guarde la clave privada en formato PPK.

    Ahora, ya está listo para conectarse a la máquina virtual mediante el archivo PPK.

  6. Inicie PuTTY. Usará el mismo formato <username> @ <host | IP address> para la información de conexión. Puede guardar esta información de sesión para volver a usarla más adelante. La siguiente captura de pantalla muestra el cuadro de diálogo Configuración de PuTTY después de guardar la sesión actual. El cuadro de diálogo muestra la información del host en formato y el nombre de la sesión después de seleccionarla <username> @ <host | IP address> en la lista disponible.

    Captura de pantalla de la configuración de la putilla.

  7. Dado que usa la autenticación de clave pública SSH, debe decir a PuTTY dónde encontrar la clave privada. Para ello, expanda SSH y seleccione Auth en el panel Categoría y, a continuación, seleccione Examinar.

    Captura de pantalla de la configuración de la putilla para seleccionar.

  8. Busque y seleccione el archivo PPK que creó con PuTTYgen.

  9. Seleccione Abrir para iniciar la sesión.

    Nota

    Cuando se conecta por primera vez a la máquina virtual, recibe el siguiente mensaje de advertencia:

    La clave de host del servidor no se almacena en caché en el Registro. No tiene ninguna garantía de que el servidor es el equipo que cree que es.

    Ventana de alerta de seguridad de la putilla.

    Este mensaje es similar al mensaje que se generó la primera vez que se conecta a la máquina virtual mediante un cliente SSH en PowerShell.

  10. Seleccione para conectarse a la máquina virtual.

    Captura de pantalla de la línea de comandos.

Nota

Usará SSH de PowerShell para conectarse a la máquina virtual durante el resto de estos tutoriales.

Siguientes pasos

Parte 1.2: operaciones básicas en Linux

Aviso de declinación de responsabilidades sobre la información de terceros

Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.