Saltar al contenido principal

Conectarse por SSH

Copie el comando de conexión

Abra la instancia desde Instancias y permanezca en la pestaña Conectar. El comando se muestra ya con el host, el puerto y el usuario completados:

ssh -p 40123 root@sh-us-tx-01.ssh.superheat.dev

Use el botón de copiar que está junto a él en lugar de volver a escribir las partes. Los datos de conexión aparecen solo cuando la instancia llega a running; hasta entonces la pestaña indica que no están listos.

El usuario es root salvo que el comando mostrado indique otra cosa. La autenticación usa la clave SSH que adjuntó al desplegar.

Por qué el puerto no es 22

Dentro del contenedor, sshd escucha en el 22. Ese puerto se publica luego en un puerto de la máquina host, tomado del rango que ese host tiene disponible, y ese puerto del host es al que usted se conecta. El número se asigna en el lanzamiento, difiere de una instancia a otra y no tiene nada que ver con el 22.

Dos consecuencias que conviene recordar:

ssh root@sh-us-tx-01.ssh.superheat.dev sin -pfalla, o llega a algo que no es su instancia
El host y el puerto después de detener e iniciarse reasignan, así que pueden no ser el par que usó antes

Vuelva a copiar el comando desde la pestaña Conectar después de cada inicio en lugar de confiar en una entrada del historial del shell.

La primera conexión

El contenedor genera una clave de host nueva la primera vez que arranca, por lo que una instancia nueva siempre pregunta:

The authenticity of host '[sh-us-tx-01.ssh.superheat.dev]:40123 ([203.0.113.14]:40123)' can't be established.
ED25519 key fingerprint is SHA256:0Xk2r1uJ3q…
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Responda yes. La huella digital queda registrada en ~/.ssh/known_hosts para ese host y puerto.

Como los pares de host y puerto se reciclan a medida que las instancias van y vienen, tarde o temprano se conectará a una instancia nueva en un host y puerto que ya usó antes, y OpenSSH se negará con REMOTE HOST IDENTIFICATION HAS CHANGED. Elimine la entrada obsoleta y conéctese de nuevo:

ssh-keygen -R "[sh-us-tx-01.ssh.superheat.dev]:40123"

Cuando su cliente ofrece la clave equivocada

La autenticación por contraseña está desactivada; solo la clave adjuntada al desplegar está en authorized_keys. Si su agente tiene varias claves, OpenSSH puede agotar sus intentos antes de llegar a la correcta y usted obtiene Permission denied (publickey). Indique la clave de forma explícita:

ssh -i ~/.ssh/id_ed25519 -o IdentitiesOnly=yes -p 40123 root@sh-us-tx-01.ssh.superheat.dev

No hay forma de adjuntar otra clave a una instancia después de desplegarla. Agregue primero la clave que quiere en Claves SSH y luego despliegue. Consulte Agregar una clave.

Una entrada de host en lugar de un comando largo

Host superheat
HostName sh-us-tx-01.ssh.superheat.dev
Port 40123
User root
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes

Luego ssh superheat, scp -r ./data superheat:/workspace/, y así sucesivamente. Actualice HostName y Port después de un inicio.

Reenvío del agente

Reenvíe su agente local cuando la instancia necesite autenticarse como usted — al clonar un repositorio privado, por ejemplo — para que ninguna clave privada quede escrita en la instancia:

ssh -A -p 40123 root@sh-us-tx-01.ssh.superheat.dev

O agregue ForwardAgent yes a la entrada de host anterior.

El reenvío del agente presta sus claves

Mientras la sesión está abierta, cualquier cosa con root en ese contenedor puede usar su agente reenviado para autenticarse como usted en cualquier lugar donde se acepten sus claves. Reenvíe por conexión, no de forma global, y prefiera una clave de despliegue limitada al repositorio para trabajos desatendidos.

Mover datos hacia dentro y hacia fuera

scp recibe el puerto con -P, en mayúscula, no con el -p que recibe ssh.

# push a dataset up
scp -P 40123 -r ./data root@sh-us-tx-01.ssh.superheat.dev:/workspace/data

# pull checkpoints back down
scp -P 40123 -r root@sh-us-tx-01.ssh.superheat.dev:/workspace/checkpoints ./checkpoints

rsync viene instalado en la imagen base de Superheat y es la mejor opción para cualquier transferencia grande o repetida, porque -P reanuda una transferencia parcial en lugar de empezar de cero:

# up
rsync -avP -e "ssh -p 40123" ./data/ root@sh-us-tx-01.ssh.superheat.dev:/workspace/data/

# down
rsync -avP -e "ssh -p 40123" root@sh-us-tx-01.ssh.superheat.dev:/workspace/checkpoints/ ./checkpoints/

Las barras finales importan para rsync: ./data/ copia el contenido de data, ./data copia el directorio en sí.

Destruir elimina el disco

No hay instantáneas ni forma de deshacerlo. Copie fuera de la instancia todo lo que quiera conservar antes de destruirla. Consulte Detener frente a destruir.

Relacionado