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 -p | falla, o llega a algo que no es su instancia |
| El host y el puerto después de detener e iniciar | se 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.
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í.
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.