Posez votre question »

Réseaux - Installation d'un serveur ssh sous Windows

Septembre 2015

Cet article va vous expliquer comment installer et configurer un serveur ssh sous Windows.


Sommaire


Introduction


Choix du logiciel


J'ai choisi le serveur Openssh de Cygwin, car celui de http://sshwindows.sourceforge.net
ne semble pas mis à jour assez souvent.
Cygwin veille à maintenir ses packages à jour, ce qui est important du point de vue sécurité.
De plus l'installeur Cygwin permet de mettre à jour OpenSSH, openssl et toutes les librairies
sans avoir à tout réinstaller.

OS nécessaire


Windows 2000, XP ou 2003.
(Cette installation n'est pas faisable sous Windows 95/98/ME.)
Ceci fonctionne même sous XP Home (édition Familiale).

Outils utilisés


OpenSSH (par le shell et l'installeur Cygwin)

Avant de commencer


Si vous ne vous sentez pas d'effectuer les manipulations suivantes, vous pouvez prendre le serveur ssh Cygwin pré-packagé CopSSH: http://www.itefix.no/...
Toutefois, vous devez savoir que ce package risque d'interférer avec Cygwin s'il est déjà présent, et qu'il ne gère que les utilisateurs locaux.

Note importante


L'installation d'un serveur ssh sous Windows reste du bricolage. Ce n'est ni fiable, ni sûr.
Il est fortement déconseillé d'installer un tel serveur ssh sous Windows sur une machine de production.
Si vous avez besoin d'un serveur ssh solide, prenez Unix, Linux ou BSD. C'est nettement plus fiable, sans aucune comparaison (pas de DLL d'émulation d'une partie d'un système d'exploitation (cygwin.dll), pas de mappage foireux entre les droits Windows et les droits Unix, pas de service lancé avec un user dont les droits sont mal fagotés, pas de pseudo-shell Unix...)
Vous êtes prévenu.

Note de l'auteur (sebsauvage)


Inutile de m'écrire par mail pour me demander de l'aide concernant cette installation. Je n'y répondrai pas. Cette documentation est suffisamment détaillée.
Si cela ne marche pas, c'est très probablement que vous avez fait une erreur. 99% des problèmes que l'on m'a soumis étaient dûs à une lecture trop rapide de cette documentation.
Lisez bien les messages affichés à l'écran.
Ne continuez pas l'installation bêtement si un message d'erreur s'affiche : il faut d'abord résoudre le problème avant de continuer.

I - Installation de Cygwin


Téléchargez l'installeur Cygwin (setup.exe) de http://www.cygwin.com/ et lancez-le.
  • Fenêtre "Choose installation type": Choisissez "Install from internet"
  • Fenêtre "Choose Installation Directory": Laissez toutes les valeurs par défaut.
  • Fenêtre "Select Local Package directory": Laissez les valeurs par défaut. (Les fichiers d'install cygwin seront placés dans un sous-répertoire de setup.exe)
  • Fenêtre "Selection connection type": Entrez d'éventuels paramètres de proxy si vous en utilisez un.
  • Fenêtre "Choose Download Site(s)": Choisissez un site de téléchargement proche de chez vous. Par exemple, en Belgique, choisissez les serveurs en .be. En France, choisissez les serveurs en .fr. Au pire, choisissez des serveurs dans des pays voisins (exemple: .de (Allemagne) pour la France).
  • Fenêtre "Select packages", cliquez sur le bouton "View" pour voir la liste des paquets.
  • Descendez dans la liste pour trouver "openssh: The OpenSSH server and client programs" et cliquez sur le mot "Skip" pour sélectionner ce package. Le mot "Skip" doit alors être remplacé par la version d'openssh (pa exemple "4.2p1-1"). D'autres packages vont automatiquement être sélectionnés. Cliquez sur "Next": Le téléchargement commence. (Environ 17 Mo vont être téléchargés.)
  • Fenêtre "Create icons": cliquez sur "Finish".


L'installation de Cygwin est terminée.

II - Configuration du serveur ssh


Modification de l'environnement

  • Cliquez-droit sur le Poste de travail > "Propriétés" > "Avancé" > "Variables d'environnement" > "Variables système".
  • Cliquer sur "Nouveau", et entrer la variable : CYGWIN ; valeur : ntsec tty
  • Sélectionnez PATH dans la liste, cliquez sur "Éditer" et ajoutez : ;C:\Cygwin\bin à la fin du chemin.

II.1 Création des groupes et utilisateurs

  • Ouvrez la fenêtre Cygwin.
  • Créez les users et les groupes:
    • Users : mkpasswd -l > /etc/passwd
    • Groupes : mkgroup -l > /etc/group
    • Cela va prendre les users et groupes de Windows et les créer dans les fichiers correspondants Cygwin.
    • -l est bien un L MINUSCULE, et PAS le chiffre 1.
    • Pour utiliser les groupes/users du domaine (au lieu de local), remplacez -l par -d
    • Pour ajouter un user précis, utilisez -u. Exemple: mkpasswd -u johnny -l > /etc/passwd
    • Contrôlez bien le contenu des fichiers passwd et group. Si ces fichiers sont vides, le serveur ssh ne fonctionnera pas.
    • Si un utilisateur ET SON GROUPE ne sont pas déclarés dans ces 2 fichiers, il ne pourra pas se connecter.
    • Si vous avez un message d'erreur sur mkpasswd ou mkgroup, inutile de poursuivre l'installation : vous devez d'abord résoudre ce problème avant de continuer.
  • Lancez: ssh-host-config -y. Il est possible qu'il demande un mot de passe pour la création d'un user "sshd_server" (par exemple sous Windows 2003). C'est le user qui sera utilisé pour faire tourner le service sshd.
  • Quand il vous est demandé "CYGWIN=", entrez : ntsec tty. Cela va créer le service sshd dans Windows. Il apparaîtra sous le nom "CYGWIN sshd" dans la liste des services. Il est en principe configuré pour démarrer automatiquement, mais il n'est pas encore démarré.

III - Lancement du service sshd et test


Démarrer le service


Utilisez la commande net start sshd cygrunsrv -S sshd.
Notez que le service démarrera automatiquement au prochain redémarrage de Windows, vous n'aurez donc plus à taper cette commande.
Si le service ne démarre pas, regardez le contenu du fichier C:\cygwin\var\log\sshd.log
Selon les installations, il est possible que vous ayez à faire chown system /etc/ssh* et chown system /var/empty pour que le service démarre correctement.

Tester le service


Utilisez le client ssh fourni avec cygwin: ssh monlogin@localhost.
Ou bien Putty (client ssh gratuit): http://www.chiark.greenend.org.uk/~sgtatham/putty/.
A la première connexion, le client ssh va probablement vous demander de confirmer la clé.
Ensuite, après l'entrée du mot de passe, vous devez obtenir un shell.
Vous pouvez voir la connexion en tapant : echo $SSH_CONNECTION
(Port 22 = votre serveur ssh)

Remarques


Gestion des utilisateurs


Tout utilisateur déclaré dans /etc/passwd pourra se logguer sur le serveur ssh. Vous pouvez donc limiter la liste des utilisateurs pouvant se connecter sur le serveur ssh en modifiant le fichier C:\cygwin\etc\passwd

Note : vous devez laisser les users sshd et sshd_server. Le serveur ssh en a besoin.

Accès aux disques Windows


N'oubliez pas que sous le shell Cygwin, vous pouvez accéder à vos disques Windows, par exemple : /cygdrive/c pour accéder à C: (et ainsi de suite pour les autres lecteurs.)

Utilisations


En plus du shell, vous avez bien entendu la possibilité d'utiliser votre serveur ssh pour le transfert sécurisé de fichiers (scp/sftp).
Sous Windows, on trouve des clients scp/sftp gratuits :

Le serveur SSH peut également tunneller pour vous tout protocole basé sur TCP. (Pour être précis, c'est équivalent à un port-forwarding distant). Exemple, pour établir un tunnel :

Votre machine -----> client ssh local (port 777) -----> serveur ssh (port 22) ----> pop.free.fr (port 110).

On entrerait la commande suivante :
ssh -L 777:pop.free.fr:110 monLogin@monServeurSsh

Puis il suffit de connecter votre logiciel de mail sur localhost:777 au lieu de pop.free.fr:110 : ssh tunnellera tout cela vers pop.free.fr, port 110.
Vous pourrez donc lire votre courrier sur localhost:777.
Cela peut être utile pour traverser des réseaux non sûrs (par exemple tout ce qu'il y a entre votre machine et le serveur ssh).

Sécurité


Pour compléter cette installation, il faudrait ajuster les droits d'accès aux fichiers du user utilisé pour lancer le service sshd afin d'améliorer la sécurité.

Pensez à lancer de temps en temps l'installeur Cygwin pour mettre à jour openssh et openssl. (Arrêtez le service avant de faire cette mise à jour). Cela vous permettra de bénéficier des mises à jour de sécurité d'openssh et openssl.

Liens


La rédaction de ce document a été aidée par http://www.cs.princeton.edu/~sudhakar/linux/cache/cygwin-sshd.html (en anglais).

Pour une lecture illimitée hors ligne, vous avez la possibilité de télécharger gratuitement cet article au format PDF :
Reseaux-installation-d-un-serveur-ssh-sous-windows.pdf

Réalisé sous la direction de , fondateur de CommentCaMarche.net.

A voir également

Dans la même catégorie

Redes - Instalación de un servidor ssh en Windows
Par Carlos-vialfa le 15 avril 2008
Publié par sebsauvage. - Dernière mise à jour par christelle.b
Ce document intitulé «  Réseaux - Installation d'un serveur ssh sous Windows  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.