La conexión SSH directa es la forma recomendada para conectarse a una instancia DSW desde una terminal local o VS Code. Las conexiones SSH directas son más rápidas y estables que las conexiones mediante ProxyClient.
Límites
-
Tipos de instancia no compatibles
En los resource groups públicos, los tipos de instancia cuyos nombres comienzan con
ecs.ebmno admiten conexiones SSH directas. -
Límites de conexión a la red pública
Cuando se conecta a una instancia DSW a través de la red pública, PAI configura automáticamente reglas DNAT en cada NAT gateway de Internet. No se requiere configuración manual.
Cada NAT gateway de Internet admite un máximo de 100 reglas DNAT. Por lo tanto, pueden conectarse hasta 100 instancias DSW simultáneamente. Para obtener más información sobre las cuotas, consulte Quotas.
Facturación
El acceso a la red pública para una instancia DSW requiere un NAT gateway, una Elastic IP address (EIP) o un Network Load Balancer (NLB). Los NAT gateways, las EIP y los NLB se facturan de forma independiente. Los cargos continúan acumulándose incluso después de detener la instancia DSW. Elimine estos recursos oportunamente cuando ya no los necesite.
Pasos de implementación
Paso 1: Habilitar la resolución DNS privada
Las instancias DSW se despliegan en virtual private clouds (VPC), y las conexiones SSH dependen del DNS privado para resolver las direcciones IP de las instancias. Habilite la resolución DNS privada antes de conectarse a una instancia DSW. Para obtener más información, consulte Activate Private DNS.
Paso 2: Generar un key pair de SSH
Ejecute el siguiente comando en su cliente para generar un key pair de SSH. Cuando se le solicite, establezca una frase de contraseña para el key pair. Si planea usar remote_ikernel para conectarse a la instancia (consulte el ejemplo de escenario en este tema), deje la frase de contraseña vacía y presione Enter.
Generar el key pair en la ruta predeterminada (recomendado)
Ejecute el siguiente comando:
ssh-keygen
Después de ejecutar el comando, se genera una clave pública (id_rsa.pub) y una clave privada (id_rsa) en los siguientes directorios. Si ya existe un key pair de SSH, los archivos existentes se sobrescriben. Las rutas predeterminadas varían según el sistema operativo:
Windows: el directorio
C:\Users\<username>\.ssh.Linux: el directorio
/root/.sshpara el usuario root, o el directorio/home/<username>/.sshpara usuarios estándar.macOS: el directorio
/Users/<username>/.ssh.
Generar el key pair en un directorio personalizado
Ejecute el siguiente comando:
ssh-keygen -f /your/path/example_rsa # Generates example_rsa.pub and example_rsa in /your/path
Paso 3: Configurar los ajustes de SSH para la instancia DSW
Cuando Create a DSW instance, configure los siguientes parámetros de red.
Para una instancia existente, haga clic en Change Settings para modificar los parámetros y luego haga clic en OK para aplicar los cambios.
|
Parámetro |
Descripción |
|
VPC Settings, vSwitch, Security Group |
Se requieren VPC Settings, un vSwitch y un Security Group para crear una instancia DSW en un resource group público. Puede crear estos recursos siguiendo los pasos a continuación. Para obtener más información, consulte Create a VPC and vSwitches y Manage security groups. La VPC y el security group deben estar en la misma región que la instancia DSW. Importante
Asegúrese de que las reglas de entrada del security group permitan tráfico en el puerto TCP 22 desde la dirección IP de su cliente. |
|
Enable SSH |
Active el interruptor y luego copie el contenido del archivo de clave pública |
|
Service Access and Port Configuration |
Después de activar el interruptor Enable SSH, aparece un servicio llamado SSH.
|
|
Public Network Access |
Configure este parámetro si se requiere acceso a la red pública. Seleccione DNAT + EIP.
Para crear un NAT gateway y una EIP, siga estos pasos: También puede utilizar un NLB en su lugar. Al crear la instancia NLB, establezca Instance Network Type en Internet y seleccione la misma VPC que la instancia DSW actual. Para obtener más información, consulte Get started with NLB for IPv4 load balancing. Nota
Si varias instancias DSW comparten la misma regla DNAT y EIP (o NLB), utilice puertos de acceso público diferentes. |
Paso 4: Instalar el servidor SSH
Las imágenes base oficiales y las imágenes personalizadas derivadas de ellas tienen el servidor SSH instalado e iniciado de forma predeterminada.
En la terminal de la instancia DSW, ejecute service ssh status para comprobar el estado del servicio, o ejecute pgrep sshd para verificar si existe el proceso sshd. Si el servicio SSH no se está ejecutando, ejecute los siguientes comandos para instalar el servidor SSH.
**El estado Ready de SSH en la consola solo indica que la configuración está completa. No significa que el proceso sshd se esté ejecutando. Ejecute pgrep sshd para confirmarlo.**
sudo apt-get update
sudo apt-get install openssh-server
sudo service ssh start
Si no se encuentra el comando sudo, ejecute primero apt-get install sudo y luego reintente los comandos anteriores.
En sistemas CentOS o Red Hat Enterprise Linux (RHEL), ejecute yum install openssh-server o dnf install openssh-server.
Paso 5: Conectarse a la instancia DSW
-
Consulte los métodos de acceso.
En la página de DSW, haga clic en el nombre de la instancia para ir a la página de detalles de la instancia. En la pestaña Instance Settings, busque la sección Network Settings y consulte el método de acceso público y el método de acceso VPC.
NotaSi no se seleccionó el acceso público en la configuración de SSH, aquí solo se muestra el método de acceso VPC.
-
Conéctese a la instancia DSW.
Conexión mediante SSH
-
Acceso a la red pública
Desde su línea de comandos local u otra terminal, conéctese a la instancia DSW utilizando el método de acceso público del Paso 1.
ssh root@xx.xx.xx.xx -p 1024 # If the private key is not in the default path, specify the key location ssh -i /your/path/example_rsa root@xx.xx.xx.xx -p 1024ImportanteEn los comandos anteriores, el parámetro
-pespecifica el puerto de acceso público configurado para SSH. En este ejemplo, el puerto es 1024. -
Acceso VPC
Desde otra terminal en la VPC, como una instancia ECS, conéctese a la instancia DSW utilizando el método de acceso VPC del Paso 1.
ssh root@dsw-notebook-xxxx.dsw-xxxx.dsw.pai.alibaba.com -p 22 # If the private key is not in the default path, specify the key location ssh -i /your/path/example_rsa root@dsw-notebook-xxxx.dsw-xxxx.dsw.pai.alibaba.com -p 22
Conexión desde VS Code local
-
Abra VS Code e instale la extensión Remote - SSH desde la vista de Extensiones.
Una vez completada la instalación, abra la Paleta de Comandos, introduzca
remote-sshy elija el comando Remote-SSH: Connect to Host... para iniciar la conexión remota. Haga clic en
en la esquina inferior izquierda para abrir el cuadro de diálogo Remote-SSH, y luego seleccione Connect to Host... > Add New SSH Host....-
Introduzca el comando de conexión SSH.
ssh root@xx.xx.xx.xx -p 1024 # If the private key is not in the default path, specify the key location ssh -i /your/path/example_rsa root@xx.xx.xx.xx -p 1024 Haga clic en Open en la esquina inferior derecha. El estado de la conexión aparece en la esquina inferior izquierda.
-
Abra un directorio en la instancia DSW para comenzar el desarrollo y la depuración remotos.
Haga clic en el icono Explorer en la barra de actividades de la izquierda, haga clic en el botón Open Folder, introduzca
/mnt/workspaceen el cuadro de diálogo Open File or Folder y luego haga clic en OK para abrir el directorio. -
Para ejecutar código, conéctese a un kernel en la instancia DSW.
En la lista desplegable Select a Jupyter Kernel en la parte superior de VS Code, seleccione el kernel recomendado Python 3 (ipykernel).
-
Escenario: Ejecutar un notebook local en una instancia DSW
Requisitos previos
Complete los pasos 1 a 4 de este tema para configurar la conexión SSH directa. Al generar el key pair de SSH, deje la frase de contraseña vacía.
Procedimiento
-
Desde su terminal local, instale remote_ikernel y agregue un kernel remoto.
pip install remote_ikernelremote_ikernel manage --add \ --kernel_cmd="ipython kernel -f {connection_file}" \ # No changes required --name="Remote Python" \ --interface=ssh \ --host=root@*.*.*.*:1024 # Replace this with your host address. If the private key is not in the default path, use --host="-i /your/path/example_rsa root@*.*.*.*:1024"Si aparece el siguiente mensaje, el kernel remoto se ha agregado correctamente.
Added kernel ['rik_ssh_root_121_40_*_*_1024_remotepython']: SSH root@121.40.*.*:1024 Remote Python.Para ver la configuración del kernel remoto, ejecute el siguiente comando:
remote_ikernel manage --show En VS Code en su computadora local, abra un archivo de notebook y cambie el kernel en la esquina superior derecha. Busque Remote Python y selecciónelo.
Preguntas frecuentes
P: ¿Cuáles son las diferencias entre la conexión SSH directa y el proxy ProxyClient?
P: ¿Cómo soluciono fallos de conexión SSH, tiempos de espera o rechazo de clave al conectarme a una instancia DSW?
Solucione el problema por categoría:
-
Fallos de conexión a la red pública
Asegúrese de que las reglas de entrada del security group permitan tráfico en el puerto TCP 22 desde la dirección IP de su cliente.
Si existen múltiples NAT gateways de Internet en la VPC, consulte Deploy single-AZ NAT gateways for high availability para revisar las relaciones de enrutamiento entre los NAT gateways, los vSwitches y las tablas de rutas.
Si solo existe un NAT gateway, utilice la solución de problemas de autoservicio para analizar la conectividad de red.
-
Fallos de conexión VPC
Asegúrese de que el cliente y la instancia DSW estén en la misma VPC. Ejecute el comando
digpara probar la resolución DNS del nombre de dominio VPC de la instancia DSW. Si se devuelveNXDOMAIN, la resolución DNS no funciona. Compruebe la configuración de DNS privado de la VPC.Si utiliza una imagen personalizada, asegúrese de que el servicio SSH esté instalado e iniciado. Para obtener más información, consulte Step 4: Install the SSH server.
Asegúrese de que las reglas de entrada del security group permitan tráfico en el puerto TCP 22.
Ejecute
ssh -v root@IP -p portpara obtener información detallada de la conexión.Connection timed outindica un problema de security group o de conectividad de red.Connection refusedindica que el puerto no está escuchando (sshd no se está ejecutando).Connection resetindica un problema de autenticación.
-
Rechazo de clave (Permission denied)
Asegúrese de que la clave pública (todo el contenido de
id_rsa.pub) esté agregada a la configuración SSH de la instancia DSW.Asegúrese de que la clave privada utilizada en el comando SSH coincida con la clave pública. Si la clave privada no está en la ruta predeterminada (
~/.ssh/id_rsa), especifíquela mediante el parámetro-i.Compruebe si los permisos del archivo
~/.ssh/authorized_keysson 600. Ejecutels -l ~/.ssh/authorized_keyspara verificarlo. Los permisos incorrectos provocan que SSH rechace la clave pública.
-
Fallos de conexión en VS Code
Asegúrese de que la extensión
Remote - SSHesté instalada y de haber introducido un comando SSH completo, comossh root@xx.xx.xx.xx -p 1024.Pruebe la conexión ejecutando el comando SSH en una terminal local. Una vez que la conexión básica funcione, revise la configuración de VS Code.
Si aparece un error sobre una tubería inexistente, reinicie VS Code o reinstale la extensión Remote - SSH.
P: ¿Puedo usar un IDE local como PyCharm para conectarme remotamente a una instancia DSW?
Se admiten todas las funciones basadas en el protocolo SSH. Al conectarse mediante PyCharm, este descarga e instala automáticamente los componentes del lado del servidor en la instancia DSW. Por lo tanto, la instancia DSW debe tener acceso a la red pública.
P: ¿Cómo consulto la dirección IP pública de una instancia?
Si hay un NAT gateway de Internet configurado, consulte la dirección IP pública siguiendo estos pasos:
P: ¿Admite una instancia DSW múltiples usuarios con inicios de sesión SSH separados?
De forma predeterminada, una instancia DSW solo proporciona el usuario root para inicios de sesión SSH. DSW no admite la creación de múltiples usuarios independientes con inicios de sesión SSH aislados. Puede crear usuarios adicionales manualmente dentro de la instancia, pero esta no es una práctica admitida oficialmente.
P: ¿Por qué no puedo ver los archivos del workspace cuando me conecto a una instancia DSW desde un IDE local como VS Code o PyCharm?
Después de un inicio de sesión SSH, el directorio predeterminado puede ser el directorio home del usuario root (/root). Los archivos del workspace generalmente se almacenan en un directorio en el disco de datos montado, como /mnt/workspace. En VS Code, elija File > Open Folder para abrir el directorio de trabajo correcto.
Referencias
Si este método no se ajusta a su escenario o no desea configurar componentes de red adicionales, utilice ProxyClient para conectarse de forma remota.
Configure el nombre de la VPC, el bloque CIDR IPv4 y la información del vSwitch. Mantenga los demás parámetros con sus valores predeterminados y luego haga clic en OK para crear la VPC y el vSwitch.



