Un petit préambule : certains tests d'intégration du CICD doivent pouvoir se connecter via ssh à un utilisateur ayant une suite de fichiers de test dans son répertoire personnel. Voici le fichier Docker que j'ai écrit pour créer cela :
FROM alpine:latest
WORKDIR /src
COPY ./src /src
RUN apk update
RUN apk add bash
RUN apk add openssh
RUN apk add openrc
RUN rc-update add sshd
RUN adduser -g "" -D testuser
RUN echo testuser:testpassword | chpasswd
EXPOSE 22
Cela permet de construire une image que je monte ensuite de manière interactive pour l'empêcher de sortir immédiatement.
docker run -dit --rm -p 5022:22 6dbd5f8ae874
À ce stade, je m'attendais à pouvoir me connecter :
ssh testuser@localhost -p 5022
mais ssh dit
kex_exchange_identification: Connection closed by remote host
Connection closed by 127.0.0.1 port 5022
Rappelons que le contexte est celui d'Alpine Linux au 2022-07-06 :
- Qu'est-ce qui doit être modifié - le client, le serveur ou les deux ?
- Comment et où ?