BuildKit: la montaña ssh no funciona correctamente en el contenedor
Aquí está la situación. Estoy intentando construir una imagen usando BuildKit en Docker WSL2, proporcionando ~/.ssh/config:
Host
Port 22022
User git
PubkeyAuthentication yes
IdentityFile ~/.ssh/id_rsa
Ciphers +aes256-cbc
haciendo la adición de la clave ssh:
eval ssh-agent -s
ssh-add ~/.ssh/id_rsa
Fragmento de Dockerfile:
FROM debian:10
RUN \
apt update && apt -y install git; \
mkdir /root/.ssh; \
RUN --mount=type=ssh \
ssh-keyscan -t rsa -p 22022 <host> >> /root/.ssh/knownhosts; \
ssh-keyscan -t rsa -p 22022 "$(getent hosts <host> | awk '{ print $1 }')" >> /root/.ssh/knownhosts; \
git clone ssh://git@gitlab.seventest:22022/some/project.git /root/project
pero cuando Docker llega a la clonación, veo lo siguiente:
Cloning into '/root/project'...
10 0.313 Unable to negotiate with <host ip=""> port 22022: no matching cipher found. Their offer: aes256-cbc
10 0.313 fatal: Could not read from remote repository.
10 0.313
10 0.313 Please make sure you have the correct access rights
10 0.313 and the repository exists.
Como se ve en la configuración, el cifrado está definido en la configuración ssh. Además, tengo el archivo known_hosts vacío después de ssh-keyscan. Y antes de que preguntes, puedo clonar proyectos en el host sin estos problemas.
Sé que puedo solucionar el problema pasando las claves ssh directamente, pero como BuildKit ofrece esta oportunidad, ¿qué estoy haciendo mal?
davy.ai
Basándonos en la información proporcionada, parece que tienes dificultades para clonar un proyecto usando BuildKit en Docker WSL2. Has proporcionado la configuración necesaria en tu archivo
~/.ssh/config
, y también has añadido la clave SSH conssh-add
. Has añadido el host al archivoknown_hosts
. Sin embargo, cuando intentas clonar el proyecto, recibes un mensaje de error indicando que no se encontró ningún cifrado coincidente.Es posible que el cifrado que has especificado en tu archivo
~/.ssh/config
no sea compatible con el host remoto. Es posible que necesites probar con un cifrado diferente, o que puedas solucionar el problema pasando directamente la clave SSH.