

# Conexión a la instancia de Linux con SSH
<a name="connect-to-linux-instance"></a>

Existen diversas maneras de conectarse a su instancia de Linux con SSH. Algunas varían según el sistema operativo del equipo local desde el que se conecte. Otros métodos están basados en el navegador, como EC2 Instance Connect o el Administrador de sesiones de AWS Systems Manager, y se pueden utilizar desde cualquier equipo. Puede utilizar SSH para conectarse a su instancia de Linux y ejecutar comandos o utilizar SSH para transferir archivos entre su equipo local y su instancia.

Antes de conectarse a la instancia de Linux mediante SSH, complete los siguientes requisitos previos:
+ Verifique que su instancia ha pasado las comprobaciones de estado. Puede que transcurran unos minutos hasta que la instancia esté lista para aceptar solicitudes de conexión. Para obtener más información, consulte [Ver comprobaciones de estado](viewing_status.md).
+ Asegúrese de que el grupo de seguridad asociado a la instancia permita el tráfico SSH que ingresa desde la dirección IP. Para obtener más información, consulte [Reglas para conectarse a las instancias desde un equipo](security-group-rules-reference.md#sg-rules-local-access).
+ [Obtenga los detalles necesarios de la instancia](connection-prereqs-general.md#connection-prereqs-get-info-about-instance).
+ [Busque la clave privada y establezca permisos.](connection-prereqs-general.md#connection-prereqs-private-key).
+ [(Opcional) Obtenga la huella digital de la instancia](connection-prereqs-general.md#connection-prereqs-fingerprint).

A continuación, elija una de las siguientes opciones para conectarse a su instancia de Linux mediante SSH.
+ [Conexión mediante un cliente de RDP](connect-linux-inst-ssh.md)
+ [Conexión mediante PuTTY](connect-linux-inst-from-windows.md) 
+ [Transferir archivos mediante SCP](linux-file-transfer-scp.md)

Si no puede conectarse a la instancia y necesita asistencia para solucionar problemas, consulte [Solución de problemas de conexión a la instancia de Linux de Amazon EC2](TroubleshootingInstancesConnecting.md).

# Conexión a la instancia de Linux mediante un cliente SSH
<a name="connect-linux-inst-ssh"></a>

Puede utilizar Secure Shell (SSH) para conectarse a la instancia de Linux desde el equipo local. Para obtener más información sobre otras opciones, consulte [Conexión con instancias EC2](connect.md).

**nota**  
Si recibe un error al intentar conectarse a su instancia, asegúrese de que la instancia cumple con todos los [Requisitos previos para la conexión SSH](#ssh-prereqs-linux-from-linux-macos). Si cumple con todos los requisitos previos y sigue sin poder conectarse a su instancia de Linux, consulte [Solución de problemas de conexión a la instancia de Linux de Amazon EC2](TroubleshootingInstancesConnecting.md).

**Topics**
+ [Requisitos previos para la conexión SSH](#ssh-prereqs-linux-from-linux-macos)
+ [Conexión a la instancia de Linux mediante un cliente SSH](#connect-linux-inst-sshClient)

## Requisitos previos para la conexión SSH
<a name="ssh-prereqs-linux-from-linux-macos"></a>

Antes de conectarse a la instancia de Linux mediante SSH, complete las siguientes tareas.

**Complete los requisitos previos generales.**  
+ Verifique que su instancia ha pasado las comprobaciones de estado. Puede que transcurran unos minutos hasta que la instancia esté lista para aceptar solicitudes de conexión. Para obtener más información, consulte [Ver comprobaciones de estado](viewing_status.md).
+ [Obtenga los detalles necesarios de la instancia](connection-prereqs-general.md#connection-prereqs-get-info-about-instance).
+ [Busque la clave privada y establezca permisos.](connection-prereqs-general.md#connection-prereqs-private-key).
+ [(Opcional) Obtenga la huella digital de la instancia](connection-prereqs-general.md#connection-prereqs-fingerprint).

**Permita el tráfico SSH entrante desde su dirección IP.**  
Asegúrese de que el grupo de seguridad asociado a la instancia permita el tráfico SSH que ingresa desde la dirección IP. Para obtener más información, consulte [Reglas para conectarse a las instancias desde un equipo](security-group-rules-reference.md#sg-rules-local-access).

**Instale un cliente SSH en su equipo local (según sea necesario).**  
Es posible que el equipo local tenga instalado un cliente SSH de forma predeterminada. Para comprobar esto, escriba el siguiente comando en una ventana del terminal. Si su equipo no reconoce el comando, debe instalar un cliente SSH.  

```
ssh
```
A continuación, se muestran algunas opciones posibles para Windows. Si su equipo ejecuta un sistema operativo diferente, consulte la documentación de ese sistema operativo para ver las opciones del cliente SSH.

## Instale OpenSSH en Windows
<a name="openssh"></a>

Tras instalar OpenSSH en Windows, puede conectarse a la instancia de Linux desde su equipo de Windows mediante SSH. Antes de comenzar, asegúrese de que cumple con los siguientes requisitos.

**Versión de Windows**  
La versión de Windows de su equipo debe ser Windows Server 2019 o posterior.  
En su lugar, para las versiones anteriores de Windows, descargue e instale [Win32-OpenSSH](https://github.com/PowerShell/Win32-OpenSSH/wiki).

**Requisitos de PowerShell**  
Para instalar OpenSSH en el sistema operativo Windows mediante PowerShell, debe ejecutar la versión 5.1 o una posterior de PowerShell, y su cuenta debe pertenecer al grupo de administradores integrado. Ejecute `$PSVersionTable.PSVersion` desde PowerShell para comprobar la versión de PowerShell.  
Para comprobar si pertenece al grupo de administradores integrado, ejecute el siguiente comando de PowerShell:  

```
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
```
Si pertenece al grupo de administradores integrado, la salida es `True`.

Para instalar OpenSSH para Windows mediante PowerShell, ejecute el siguiente comando de PowerShell.

```
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
```

A continuación, se muestra un ejemplo del resultado.

```
Path          :
Online        : True
RestartNeeded : False
```

Para desinstalar OpenSSH de Windows mediante PowerShell, ejecute el siguiente comando de PowerShell.

```
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
```

A continuación, se muestra un ejemplo del resultado.

```
Path          :
Online        : True
RestartNeeded : True
```

## Instalar Windows Subsystem para Linux (WSL)
<a name="WSL"></a>

Tras instalar WSL en Windows, puede conectarse a la instancia de Linux desde su equipo de Windows mediante las herramientas de línea de comandos de Linux, como un cliente SSH.

Siga las instrucciones en [Instalar el Windows Subsystem para Linux en su instancia de Windows de EC2](install-wsl-on-ec2-windows-instance.md). Si sigue las instrucciones de la guía de instalación de Microsoft, se instalará la distribución Ubuntu de Linux. Si lo prefiere, puede instalar una distribución de Linux diferente.

En una ventana de terminal de WSL, copie el archivo `.pem` (para el par de claves que especificó al lanzar la instancia) de Windows a WSL. Anote la ruta completa al archivo `.pem` en WSL que utilizar al conectar a la instancia. Para obtener información acerca de cómo especificar la ruta a su disco duro de Windows, consulte [How do I access my C drive?](https://learn.microsoft.com/en-us/windows/wsl/faq#how-do-i-access-my-c--drive-)

```
cp /mnt/<Windows drive letter>/path/my-key-pair.pem ~/WSL-path/my-key-pair.pem
```

Para obtener información sobre la desinstalación de Windows Subsystem for Linux, consulte [How do I uninstall a WSL Distribution?](https://learn.microsoft.com/en-us/windows/wsl/faq#how-do-i-uninstall-a-wsl-distribution-)

## Conexión a la instancia de Linux mediante un cliente SSH
<a name="connect-linux-inst-sshClient"></a>

Para conectarse a la instancia de Linux mediante un cliente SSH, use el siguiente procedimiento.

**Para conectarse a la instancia mediante un cliente SSH**

1. Abra una ventana del terminal en su equipo.

1. Utilice el comando **ssh** para conectarse a la instancia. Necesita los detalles de la instancia que recopiló como parte de los requisitos previos. Por ejemplo, necesita la ubicación de la clave privada (archivo `.pem`), el nombre de usuario y el nombre de DNS público o la dirección IPv6. A continuación, se muestran ejemplos de comandos.
   + (DNS público) Para utilizar el nombre de DNS público, escriba el siguiente comando.

     ```
     ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name
     ```
   + (IPv6) Como alternativa, si la instancia tiene una dirección IPv6, escriba el siguiente comando para utilizar la dirección IPv6.

     ```
     ssh -i /path/key-pair-name.pem instance-user-name@2001:db8::1234:5678:1.2.3.4
     ```

   A continuación, se muestra un ejemplo de respuesta.

   ```
   The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (198-51-100-1)' can't be established.
   ECDSA key fingerprint is l4UB/neBad9tvkgJf1QZWxheQmR59WgrgzEimCG6kZY.
   Are you sure you want to continue connecting (yes/no)?
   ```

1. (Opcional) Verifique que la huella digital en la alerta de seguridad coincida con la huella digital. Si estas huellas digitales no coinciden, alguien podría intentar un ataque de intermediarios o man-in-the-middle. Si coinciden, continúe con el siguiente paso. Para obtener más información, consulte [Obtener la huella digital de la instancia](connection-prereqs-general.md#connection-prereqs-fingerprint).

1. Escriba **yes**.

   Debería ver una respuesta como lo siguiente:

   ```
   Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (ECDSA) to the list of known hosts.
   ```

# Conectarse a la instancia de Linux mediante PuTTY
<a name="connect-linux-inst-from-windows"></a>

Puede conectarse a la instancia de Linux mediante PuTTY, un cliente SSH gratuito para Windows.

Si ejecuta Windows Server 2019 o posterior, se recomienda utilizar OpenSSH, una herramienta de conectividad de código abierto para iniciar sesión de forma remota mediante el protocolo SSH.

**nota**  
Si recibe un error al intentar conectarse a su instancia, asegúrese de que la instancia cumple con todos los [Requisitos previos para la conexión SSH](connect-linux-inst-ssh.md#ssh-prereqs-linux-from-linux-macos). Si cumple con todos los requisitos previos y sigue sin poder conectarse a su instancia de Linux, consulte [Solución de problemas de conexión a la instancia de Linux de Amazon EC2](TroubleshootingInstancesConnecting.md).

**Topics**
+ [Requisitos previos](#putty-prereqs)
+ [Convierta su clave privada utilizando PuTTYgen](#putty-private-key)
+ [Conexión con la instancia de Linux](#putty-ssh)

## Requisitos previos
<a name="putty-prereqs"></a>

Antes de conectarse a la instancia de Linux mediante PuTTY, complete las siguientes tareas.

**Complete los requisitos previos generales.**  
+ Verifique que su instancia ha pasado las comprobaciones de estado. Puede que transcurran unos minutos hasta que la instancia esté lista para aceptar solicitudes de conexión. Para obtener más información, consulte [Ver comprobaciones de estado](viewing_status.md).
+ [Obtenga los detalles necesarios de la instancia](connection-prereqs-general.md#connection-prereqs-get-info-about-instance).
+ [Busque la clave privada y establezca permisos.](connection-prereqs-general.md#connection-prereqs-private-key).
+ [(Opcional) Obtenga la huella digital de la instancia](connection-prereqs-general.md#connection-prereqs-fingerprint).

**Permita el tráfico SSH entrante desde su dirección IP.**  
Asegúrese de que el grupo de seguridad asociado a la instancia permita el tráfico SSH que ingresa desde la dirección IP. Para obtener más información, consulte [Reglas para conectarse a las instancias desde un equipo](security-group-rules-reference.md#sg-rules-local-access).

**Instale PuTTY en su equipo local (según sea necesario).**  
Descargue e instale PuTTY desde la [página de descarga de PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/). Si ya tiene instalada una versión antigua de PuTTY, le recomendamos que descargue la última versión. Asegúrese de instalar el conjunto completo.

**Convierta su clave privada en el formato PPK mediante PuTTYgen.**  
Debe especificar la clave privada para el par de claves que especificó cuando inició la instancia. Si creó la clave privada en formato .pem, debe convertirla en un archivo PPK para utilizarla con PuTTY. Busque la clave privada (archivo .pem) y, a continuación, siga los pasos en [Convierta su clave privada utilizando PuTTYgen](#putty-private-key).

## (Opcional) Convierta su clave privada mediante PuTTYgen.
<a name="putty-private-key"></a>

PuTTY no admite de forma nativa el formato PEM para claves SSH. PuTTY proporciona una herramienta llamada PuTTYgen, la cual convierte claves al formato requerido PPK para PuTTY. Si creó la clave mediante el formato PEM en lugar del formato PPK, debe convertir su clave privada (archivo .pem) a este formato (archivo .ppk) para utilizarla con PuTTY.

**Para convertir una clave privada de PEM a formato PPK**

1. En el menú **Start (Inicio)**, elija **All Programs (Todos los programas)**, **PuTTY**, **PuTTYgen**.

1. En **Type of key to generate (Tipo de clave a generar)**, elija **RSA**. Si la versión de PuTTYGen no incluye esta opción, elija **SSH-2 RSA**.  
![\[Clave RSA en PuTTYgen.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/puttygen-key-type.png)

1. Elija **Load (Cargar)**. De forma predeterminada, PuTTYgen muestra solo archivos con la extensión `.ppk`. Para localizar el archivo `.pem`, seleccione la opción de mostrar todos los tipos de archivo.  
![\[Seleccione todos los tipos de archivos.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/puttygen-load-key.png)

1. Seleccione el archivo `.pem` para el par de claves que especificó cuando lanzó la instancia y, a continuación, elija **Open (Abrir)**. PuTTYgen muestra un aviso de que el archivo `.pem` se ha importado correctamente. Seleccione **OK**.

1. Elija **Save private key** (Guardar la clave privada) para guardar la clave en formato que PuTTY pueda utilizar. PuTTYgen mostrará una advertencia acerca de guardar la clave sin una frase de contraseña. Elija **Yes (Sí)**.
**nota**  
Una contraseña de una clave privada es una capa adicional de protección. Incluso si se descubriera su clave privada, no se puede usar sin la contraseña. El inconveniente de usar una contraseña es que dificulta la automatización puesto que la intervención humana es necesaria para iniciar una sesión en una instancia o para copiar archivos en una instancia.

1. Especifique el mismo nombre para la clave que utilizó para el par de claves (por ejemplo `key-pair-name`) y elija **Save** (Guardar). PuTTY añade la extensión de archivo `.ppk` automáticamente. 

La clave privada está ahora en el formato correcto para su uso con PuTTY. Ya puede conectarse a la instancia mediante el cliente SSH de PuTTY.

## Conexión con la instancia de Linux
<a name="putty-ssh"></a>

Para conectarse a la instancia de Linux mediante PuTTY, use el siguiente procedimiento. Necesita el archivo `.ppk` que creó para la clave privada. Para obtener más información, consulte [(Opcional) Convierta su clave privada mediante PuTTYgen.](#putty-private-key) en la sección anterior. Si aparece un error al intentar conectarse a la instancia, consulte [Solución de problemas de conexión a la instancia de Linux de Amazon EC2](TroubleshootingInstancesConnecting.md).

**Última versión probada**: PuTTY .78

**Para conectarse a la instancia mediante PuTTY**

1. Inicie PuTTY (en el menú **Inicio**, busque **PuTTY** y, a continuación, elija **Abrir**).

1. En el panel **Category (Categoría)**, elija **Session (Sesión)** y rellene los siguientes campos:

   1. En el cuadro **Host Name (Nombre de host)** siga uno de estos procedimientos:
      + (DNS público) Para conectarse utilizando el nombre DNS público de la instancia, escriba *instance-user-name*@*instance-public-dns-name*.
      + (IPv6) Como opción, si la instancia tiene una dirección IPv6, para conectarse utilizando la dirección IPv6 de su instancia, escriba *instance-user-name*@*2001:db8::1234:5678:1.2.3.4*.

      Para obtener información acerca de cómo obtener el nombre de usuario de la instancia y el nombre de DNS público o la dirección IPv6 de la instancia, consulte [Obtenga los detalles necesarios de la instancia](connection-prereqs-general.md#connection-prereqs-get-info-about-instance).

   1. Asegúrese de que el valor del **Port (Puerto)** es 22.

   1. En **Connection type (Tipo de conexión)**, seleccione **SSH**.  
![\[Configuración de PuTTY: sesión.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/putty-session-config.png)

1. (Opcional) Puede configurar PuTTY para que envíe datos “keepalive” a intervalos regulares para mantener la sesión activa. Esto es útil para evitar desconectarse de su instancia por inactividad en la sesión. En el panel **Categoría**, elija **Conexión** y, a continuación, ingrese el intervalo deseado en el campo **Segundos entre keepalives**. Por ejemplo, si su sesión se desconecta tras 10 minutos de inactividad, escriba 180 para que PuTTY envíe datos “keepalive” cada 3 minutos.

1. En el panel **Categoría**, expanda **Conexión**, **SSH** y **Autenticación**. Elija **Credenciales**. 

1. Junto a **Archivo de clave privada para la autenticación**, seleccione **Examinar**. En el cuadro de diálogo **Seleccionar archivo de clave privada**, seleccione el  archivo `.ppk` que generó para su par de claves. Puede hacer doble clic en el archivo o seleccionar **Abrir** en el cuadro de diálogo **Seleccionar archivo de clave privada**.

1. (Opcional) Si tiene previsto volver a conectar esta sesión después de esta sesión, puede guardar la sesión informativa para usarla en el futuro. En el panel **Categoría**, seleccione **Sesión**. Ingrese un nombre para la sesión en **Sesiones guardadas** y, a continuación, elija **Guardar**.

1. Para conectarse a la instancia, seleccione **Abrir**.

1. Si esta es la primera vez que se conecta a esta instancia, PuTTY muestra un cuadro de diálogo de alerta de seguridad que le pregunta si tiene confianza en el host al que se está conectando.

   1. (Opcional) Verifique que la huella digital en el cuadro de diálogo de la alerta de seguridad coincide con la huella digital que obtuvo anteriormente en [(Opcional) Obtenga la huella digital de la instancia](connection-prereqs-general.md#connection-prereqs-fingerprint). Si estas huellas digitales no coinciden, alguien podría intentar un ataque man-in-the-middle (MITM). Si coinciden, continúe con el siguiente paso.

   1. Elija **Aceptar**. Se abre una ventana y está conectado a la instancia.
**nota**  
Si especificó una frase de contraseña al convertir la clave privada al formato PuTTY, deberá indicar la contraseña cuando inicie sesión en la instancia.

Si aparece un error al intentar conectarse a la instancia, consulte [Solución de problemas de conexión a la instancia de Linux de Amazon EC2](TroubleshootingInstancesConnecting.md).

# Transferir archivos a instancias de Linux mediante SCP
<a name="linux-file-transfer-scp"></a>

Una de las formas de transferir archivos entre el equipo local y una instancia de Linux consiste en utilizar el protocolo de copia segura (SCP). SCP es una buena opción para operaciones sencillas, como copias de archivos puntuales. SCP protege las transferencias de archivos mediante el mismo archivo .pem que se utiliza para conectarse a una instancia mediante SSH. Si usted necesita mantener los archivos sincronizados, o si los archivos son grandes, **rsync** es más rápido y eficiente que SCP. Por motivos de seguridad, utilice **rsync** sobre SSH, ya que **rsync** transfiere los datos mediante texto sin formato de forma predeterminada.

Antes de conectarse a la instancia de Linux mediante SCP, complete las siguientes tareas:
+ **Complete los requisitos previos generales.**
  + Verifique que su instancia ha pasado las comprobaciones de estado. Puede que transcurran unos minutos hasta que la instancia esté lista para aceptar solicitudes de conexión. Para obtener más información, consulte [Ver comprobaciones de estado](viewing_status.md).
  + [Obtenga los detalles necesarios de la instancia](connection-prereqs-general.md#connection-prereqs-get-info-about-instance).
  + [Busque la clave privada y establezca permisos.](connection-prereqs-general.md#connection-prereqs-private-key).
  + [(Opcional) Obtenga la huella digital de la instancia](connection-prereqs-general.md#connection-prereqs-fingerprint).
+ **Permita el tráfico entrante de SSH desde la dirección IP.**

  Asegúrese de que el grupo de seguridad asociado a la instancia permita el tráfico SSH que ingresa desde la dirección IP. Para obtener más información, consulte [Reglas para conectarse a las instancias desde un equipo](security-group-rules-reference.md#sg-rules-local-access).
+ **Instale un cliente SCP.**

  La mayoría de equipos Linux, Unix y Apple incluyen un cliente SCP de forma predeterminada. Si el equipo no lo incluye, el proyecto OpenSSH proporciona una implementación gratuita de toda la suite de herramientas de SSH, incluido un cliente SCP. Para obtener más información, consulte [https://www.openssh.com](https://www.openssh.com).

El procedimiento siguiente le guiará a través del uso de SCP para transferir un archivo utilizando el nombre DNS público de la instancia, o la dirección IPv6 si la instancia tiene una.

**Para utilizar SCP para transferir archivos entre el equipo y la instancia**

1. Determine la ubicación del archivo de origen en el equipo y la ruta de destino en la instancia. En los ejemplos siguientes, el nombre del archivo de clave privada es `key-pair-name.pem`, el archivo que se va a transferir es `my-file.txt`, el nombre de usuario de la instancia es ec2-user, el nombre DNS público de la instancia es `instance-public-dns-name` y la dirección IPv6 de la instancia es `2001:db8::1234:5678:1.2.3.4`.
   + (DNS público) Para transferir un archivo al destino de la instancia, escriba el siguiente comando desde el equipo.

     ```
     scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@instance-public-dns-name:path/
     ```
   + (IPv6) Para transferir un archivo al destino de la instancia si la instancia tiene una dirección IPv6, escriba el siguiente comando desde el equipo. La dirección IPv6 se debe escribir entre corchetes (`[ ]`), a los que se deben aplicar escape (`\`).

     ```
     scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@\[2001:db8::1234:5678:1.2.3.4\]:path/
     ```

1. Si aún no se ha conectado a la instancia mediante SSH, verá una respuesta como la siguiente:

   ```
   The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (10.254.142.33)'
   can't be established.
   RSA key fingerprint is 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f.
   Are you sure you want to continue connecting (yes/no)?
   ```

   (Opcional) Si lo desea, puede comprobar que la huella digital de la alerta de seguridad coincide con la huella digital de la instancia. Para obtener más información, consulte [(Opcional) Obtenga la huella digital de la instancia](connection-prereqs-general.md#connection-prereqs-fingerprint).

   Escriba **yes**.

1. Si la transferencia se realiza correctamente, la respuesta será similar a la siguiente:

   ```
   Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) 
   to the list of known hosts.
   my-file.txt                                100%   480     24.4KB/s   00:00
   ```

1. Para transferir un archivo en la otra dirección (desde la instancia Amazon EC2 al equipo), revierta el orden de los parámetros de host. Por ejemplo, puede transferir `my-file.txt` desde la instancia de EC2 al destino en el equipo local `my-file2.txt`, como se muestra en los siguientes ejemplos.
   + (DNS público) Para transferir un archivo a un destino del equipo, escriba el siguiente comando desde el equipo.

     ```
     scp -i /path/key-pair-name.pem ec2-user@instance-public-dns-name:path/my-file.txt path/my-file2.txt
     ```
   + (IPv6) Para transferir un archivo a un destino del equipo si la instancia tiene una dirección IPv6, escriba el siguiente comando desde el equipo. La dirección IPv6 se debe escribir entre corchetes (`[ ]`), a los que se deben aplicar escape (`\`).

     ```
     scp -i /path/key-pair-name.pem ec2-user@\[2001:db8::1234:5678:1.2.3.4\]:path/my-file.txt path/my-file2.txt
     ```

# Administración de usuarios del sistema en la instancia de Amazon EC2 para Linux
<a name="managing-users"></a>

Cada de instancia de Linux se inicia con un usuario predeterminado del sistema Linux. Puede agregar usuarios a la instancia y eliminarlos.

En el caso del usuario predeterminado, la AMI determina el [nombre de usuario predeterminado](#ami-default-user-names) que se especificó cuando inicializó la instancia. 

**nota**  
De forma predeterminada, la autenticación con contraseña y el inicio de sesión raíz están desactivados y sudo está habilitado. Para iniciar sesión en la instancia, debe usar un par de claves. Para obtener más información acerca del formato del archivo de registro, consulte [Conexión a la instancia de Linux con SSH](connect-to-linux-instance.md).  
Puede permitir la autenticación con contraseña y el inicio de sesión raíz para la instancia. Para obtener más información, consulte la documentación del sistema operativo.

**nota**  
Los usuarios del sistema Linux no deben confundirse con los usuarios de IAM. Para obtener más información, consulte [Usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html#id_iam-users) en la *Guía del usuario de IAM*.

**Topics**
+ [Nombres de usuario predeterminados](#ami-default-user-names)
+ [Consideraciones](#add-user-best-practice)
+ [Creación de un usuario](#create-user-account)
+ [Eliminación de un usuario](#delete-user-account)

## Nombres de usuario predeterminados
<a name="ami-default-user-names"></a>

La AMI determina el nombre de usuario predeterminado de la instancia de EC2 que se especificó cuando inicializó la instancia.

Los nombres de usuario predeterminados son los siguientes:
+ Para una AMI de Amazon Linux, el nombre de usuario es `ec2-user`.
+ Para una AMI de CentOS, el nombre de usuario es `centos` o `ec2-user`.
+ Para una AMI de Debian, el nombre de usuario es `admin`.
+ Para una AMI de Fedora, el nombre de usuario es `fedora` o `ec2-user`.
+ Para una AMI de FreeBSD, el nombre de usuario es `ec2-user`.
+ Para una AMI de RHEL, el nombre de usuario es `ec2-user` o `root`.
+ Para una AMI de SUSE, el nombre de usuario es `ec2-user` o `root`.
+ Para una AMI de Ubuntu, el nombre de usuario es `ubuntu`.
+ Para una AMI de Oracle, el nombre de usuario es `ec2-user`.
+ Para una AMI de Bitnami, el nombre de usuario es `bitnami`.

**nota**  
Para encontrar el nombre de usuario predeterminado para otras distribuciones de Linux, consulte con el proveedor de AMI.

## Consideraciones
<a name="add-user-best-practice"></a>

Es correcto utilizar lel usuario predeterminado para muchas aplicaciones. Sin embargo, es posible que elija agregar usuarios de modo que las personas puedan tener sus propios archivos y zonas de trabajo. Además, crear usuarios para usuarios nuevos es mucho más seguro que conceder a múltiples usuarios (posiblemente inexpertos) acceso al usuario predeterminado porque el usuario predeterminado puede causar mucho daño en un sistema si no se usa adecuadamente. Para obtener más información, consulte [Sugerencias para proteger la instancia de EC2](https://aws.amazon.com/articles/tips-for-securing-your-ec2-instance/).

Para permitir a los usuarios el acceso SSH a su instancia de EC2 mediante un usuario del sistema Linux, debe compartir la clave SSH con el usuario. De forma alternativa, puede utilizar EC2 Instance Connect para permitir el acceso a los usuarios sin necesidad de compartir y administrar claves SSH. Para obtener más información, consulte [Conexión a la instancia de Linux mediante una dirección IP pública e EC2 Instance Connect](connect-linux-inst-eic.md).

## Creación de un usuario
<a name="create-user-account"></a>

En primer lugar, cree el usuario y, a continuación, agregue la clave pública SSH que permite al usuario conectar e iniciar sesión en la instancia.

**importante**  
En el paso 1 de este procedimiento, creará un nuevo par de claves. Dado que un par de claves funciona como una contraseña, es de vital importancia gestionarlo de forma segura. Si crea un par de claves para un usuario, debe asegurarse de que la clave privada se envíe de forma segura. Como alternativa, el usuario puede completar los pasos 1 y 2 si crea su propio par de claves, mantiene la clave privada segura en su máquina y, a continuación, envía la clave pública para completar el procedimiento del paso 3.

**Para crear un usuario**

1. [Cree un nuevo par de claves](create-key-pairs.md#having-ec2-create-your-key-pair). Debe proporcionar el archivo `.pem` al usuario para el que va a crearlo. Debe usar este archivo para conectarse a la instancia.

1. Recupere la clave pública del par de claves que creó en el paso anterior.

   ```
   $ ssh-keygen -y -f /path_to_key_pair/key-pair-name.pem
   ```

   El comando devuelve la clave pública, como se muestra en el siguiente ejemplo.

   ```
   ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6Vhz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXrlsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZqaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3RbBQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
   ```

1. Conéctese a la instancia.

1. Utilice el comando **adduser** para crear el usuario y añádala al sistema (con una entrada en el archivo `/etc/passwd`). El comando también crea un grupo y un directorio principal para el usuario. En este ejemplo, el usuario se denomina `newuser`.
   + AL2023 y Amazon Linux 2

     Con AL2023 y Amazon Linux 2, el usuario se crea con la autenticación por contraseña inhabilitada de forma predeterminada.

     ```
     [ec2-user ~]$ sudo adduser newuser
     ```
   + Ubuntu

     Incluya el parámetro `--disabled-password` para crear el usuario con la autenticación con contraseña desactivada.

     ```
     [ubuntu ~]$ sudo adduser newuser --disabled-password
     ```

1. Cambie al nuevo usuario de forma que el directorio y el archivo que cree tengan la propiedad adecuada.

   ```
   [ec2-user ~]$ sudo su - newuser
   ```

   El símbolo cambia de `ec2-user` a `newuser` para indicar que ha transferido la sesión del shell al nuevo usuario.

1. Agregar la clave pública SSH al usuario. En primer lugar, cree un directorio en el directorio de inicio del usuario para el archivo de clave SSH, a continuación cree el archivo de clave y, finalmente, pegue la clave pública en el archivo de clave, tal como se describe en los siguientes pasos secundarios.

   1. Cree un directorio `.ssh` en el directorio principal `newuser` y cambie los permisos de archivo a `700` (solo el propietario puede leer, escribir o abrir el directorio).

      ```
      [newuser ~]$ mkdir .ssh
      ```

      ```
      [newuser ~]$ chmod 700 .ssh
      ```
**importante**  
Sin estos permisos de archivo exactos, el usuario no podrá iniciar sesión.

   1. Cree un archivo llamado `authorized_keys` en el directorio `.ssh` y cambie los permisos de archivo a `600` (solo el propietario puede leer o escribir en el archivo).

      ```
      [newuser ~]$ touch .ssh/authorized_keys
      ```

      ```
      [newuser ~]$ chmod 600 .ssh/authorized_keys
      ```
**importante**  
Sin estos permisos de archivo exactos, el usuario no podrá iniciar sesión.

   1. <a name="edit_auth_keys"></a>Abra el archivo `authorized_keys` con el editor de texto que prefiera (como **vim** o **nano**).

      ```
      [newuser ~]$ nano .ssh/authorized_keys
      ```

      Pegue la clave pública que recuperó en el **paso 2** en el archivo y guarde los cambios.
**importante**  
Asegúrese de pegar la clave pública en una línea continua. La clave pública no debe dividirse en varias líneas.

      Ahora el usuario debería poder iniciar sesión en el usuario `newuser` de la instancia usando la clave privada que corresponde a la clave pública que ha agregado al archivo `authorized_keys`. Para obtener más información acerca de los diferentes métodos de conexión a una instancia de Linux, consulte [Conexión a la instancia de Linux con SSH](connect-to-linux-instance.md).

## Eliminación de un usuario
<a name="delete-user-account"></a>

Si ya no necesita un usuario, puede eliminarlo para que no pueda volver a utilizarse.

Utilice el comando **userdel** para eliminar el usuario del sistema. Cuando especifica el parámetro `-r`, el directorio principal del usuario y la carpeta spool de correo se eliminan. Para mantener el directorio principal del usuario y la carpeta spool de correo, omita el parámetro `-r`.

```
[ec2-user ~]$ sudo userdel -r olduser
```