Parfois, vous avez besoin d’un serveur SSH rapide et jetable pour vos tests. Un conteneur Docker base sur Alpine est la solution parfaite : leger, rapide a construire et facile a supprimer.
Construire l’image Docker
L’image Docker est construite a partir d’Alpine Linux, une distribution Linux legere et orientee securite.
FROM alpine:latest
RUN apk update && apk add openssh
RUN adduser -D testuser
RUN echo "testuser:password" | chpasswd
RUN echo "root:rootpassword" | chpasswd
# Generer les cles d'hote SSH
RUN ssh-keygen -A
# Configurer SSH pour autoriser la connexion root
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
EXPOSE 22
# Demarrer le service SSH
CMD ["/usr/sbin/sshd", "-D"]
Construisez l’image avec :
docker build -t ssh-test .
Gardez l’image a jour en utilisant :
docker build --pull -t ssh-test .
Executer le conteneur
Deux methodes de deploiement sont disponibles :
Utiliser le reseau Bridge
Cette approche mappe un port specifique de la machine hote vers le port 22 du conteneur, evitant les conflits avec les services SSH existants :
docker run -d -p 2222:22 --name test-ssh-connexion ssh-test
Utiliser le reseau Host
Cette methode lie le conteneur directement a la pile reseau de l’hote :
docker run -d --net host --name test-ssh-connexion ssh-test
Tester la connexion
Pour le reseau Bridge :
ssh testuser@<adresse_ip_machine_hote> -p 2222
Pour le reseau Host :
ssh testuser@<adresse_ip_machine_hote>
Acces root
Le conteneur autorise les connexions SSH root par defaut. Testez l’acces root avec :
ssh root@<adresse_ip_machine_hote>
Identifiants par defaut
Le conteneur inclut des identifiants predefinis pour les tests :
testuser/passwordroot/rootpassword
Modifiez ces lignes dans le Dockerfile pour changer les identifiants :
RUN echo "testuser:password" | chpasswd
RUN echo "root:rootpassword" | chpasswd
Attention : N’utilisez jamais de mots de passe faibles en environnement de production.
Ameliorer la securite
Pour renforcer la securite du conteneur :
- Gardez les images de conteneurs regulierement a jour
- Verifiez frequemment les vulnerabilites
- Utilisez Podman en mode rootless
- Executez les conteneurs avec des comptes utilisateur a privileges minimum
Cette approche repond aux nombreuses attaques ciblant le protocole SSH.