¿ssh -o ControlMaster=auto causa un problema con la autenticación del registro de contenedores de Google de GCP?

¿ssh -o ControlMaster=auto causa un problema con la autenticación del registro de contenedores de Google de GCP?

(Lo siento, esto está en algún lugar entre una pregunta sobre ssh y la nube de Google)

Tengo un script de Python que envía comandos a una máquina virtual de GCP a través de ssh para instalar Docker, descargar el administrador de credenciales de Docker para el registro de contenedores de Google (gcr) y extraer una imagen. Los comandos son:

  1. sudo apt-get update && sudo apt-get install -y docker.io && sudo usermod -aG docker $USER
  2. (descargue docker-credential-gcr en ~/credential_getter/docker-credential-gcr)
  3. RUTA=$RUTA:~/credential_getter && docker-credential-gcr configure-docker && docker pull mycontainer_in_gcr

Para enviar cada comando anterior, utilizo lo siguiente:

ssh -i my.pem -o ConnectTimeout=120s -o StrictHostKeyChecking=no -o ControlMaster=auto -o ControlPath=/tmp/mypath/%C -o ControlPersist=10s -o IdentitiesOnly=yes -o ExitOnForwardFailure=yes -o ServerAliveInterval=5 -o ServerAliveCountMax=3 UNAME@IPADDRESS bash --login -c -i COMMAND

Donde uso ControlMaster para reducir cualquier retraso entre los comandos.

Los comandos 1) y 2) funcionan bien, pero con 3) obtengo un comportamiento extraño en el que docker-credential-gcr dice que se imprime en la pantalla como de costumbre, pero luego la extracción de docker falla con un error de credencial. Pero luego, si entro a mi terminal unos momentos después de que 3) falla y copio y pego el mismo comando ssh, el comando funciona correctamente. De manera similar, si hago una espera en el script de Python entre 2) y 3) mayor que el tiempo de espera de ControlMaster, funciona correctamente.

Si envío los tres comandos en el script de Python usando:

ssh -i my.pem -o ConnectTimeout=120s -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -o ExitOnForwardFailure=yes -o ServerAliveInterval=5 -o ServerAliveCountMax=3 UNAME@IPADDRESS bash --login -c -i COMMAND

(Se eliminó la configuración de ControlMaster) también funciona bien.

¿Alguna idea de qué podría causar estos diferentes comportamientos?

información relacionada