1 votes

Alpine dans un conteneur docker accessible depuis l'hôte docker via ssh

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ù ?

0voto

Peter Wone Points 121
RUN echo -n 'PasswordAuthentication yes' >> /etc/ssh/sshd_config

permet l'authentification par mot de passe et l'erreur cesse d'apparaître. Une configuration plus poussée sera nécessaire pour prendre en charge l'authentification par clé, auquel cas l'authentification par mot de passe pourrait être supprimée. En attendant, cela fonctionne.

0voto

Gerald Schneider Points 17588

Vous installez des paquets, mais vous ne démarrez rien. SSHd ne fonctionne tout simplement pas.

Si vous prenez le alpine-openrc projet à titre d'exemple, ajoutez ceci à votre fichier Docker :

CMD ["/sbin/init"]

Ou, si vous remarquez l'avertissement de dépréciation sur ce projet :

Veuillez utiliser les branches *-openrc de dockage/alpine au lieu de ce projet.

Vous pouvez donc utiliser :

FROM dockage/alpine:3.11-openrc

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X