Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Ceci est une ancienne révision du document !


Openssh : un serveur ssh

Introduction

Pré-requis

Installation

Installez le paquet openssh-server, ou en ligne de commande :

  • sudo apt-get install -y openssh-server

Configuration

Le fichier de configuration est /etc/ssh/sshd_config. On va modifier quelques valeurs.

ParamètreValeur à fixer (exemple)Commentaire
PortN'importe lequel. Par exemple 3134.Changer le port par défaut permet d'éviter de subir les tentatives répétées des scanners de port. En prendre un qui n'est pas utilisé par une autre application.
Protocol2Interdit l'utilisation du protocole SSH v1 pour plus de sécurité.
PermitRootLoginnoInterdit le login via root (il faudra se connecter puis faire su root) par mesure de sécurité.
X11ForwardingyesPour faire de l'affichage graphique déporté.
MaxStartups 10:30:60Décommenter la ligne (enlever le #)Après 10 échecs de connexion, il y a 30% de chances pour qu'une connexion suivante soit bloquée. Ce pourcentage augmente linéairement jusqu'à 100% (100% pour 60 connexions).
Banner /etc/issue.netDécommenter(Optionnel) Message d'accueil (éditer /etc/issue.net pour le modifier).
AllowUsers (ligne à ajouter)Nom de votre compte (Alice)Nom des comptes autorisés à se connecter en ssh. Vous seuls serez autorisés à vous connecter.
ClientAliveInterval300Idle timeout en secondes (300s = 5min).
ClientAliveCountMax0Avec la ligne précédente, déconnecte après 5min d'inactivité.
IgnoreRhostsyesDésactive un accès peu sécurisé
HostbasedAuthenticationnoidem
PermitEmptyPasswordsnoidem, interdit les mots de passe vides.

Utilisation

Connexion

Pour vous connecter, lancez :

  • ssh -p le_port_choisi utilisateur@adresse_ip_de_votre_serveur

ou utilisez Putty sous Windows.

Le mot de passe à fournir est celui de votre compte utilisateur sur le serveur.

Pour ssh, l'argument pour spécifier le port est -p (en minuscules) tandis que pour scp, c'est -P (en majuscule).

(Facultatif) Connexion via clé publique / privée au lieu d'un mot de passe

L'authentification par clé évite de devoir taper un mot de passe à chaque connexion et renforce la sécurité.

Ne désactivez pas l'authentification par mot de passe avant d'avoir généré votre clé SSH et de l'avoir testée, si vous n'avez pas d'accès physique à la machine.

Vous n'auriez plus aucun accès à la machine…

Pour mettre en place l'authentification par clé publique/privée, modifiez le fichier /etc/ssh/sshd_config comme suit :

ParamètreValeur à fixer (exemple)Commentaire
PubkeyAuthenticationyesActiver l'authentification par clé.
PasswordAuthenticationnoAuthentification par clé uniquement (désactive l'authentification par mot de passe, si vous le souhaitez).
UsePAMnoPour ne plus avoir à saisir de mot de passe. Laisser à yes si vous souhaitez conserver l'authentification par mot de passe.

Génération des clés et connexion

Pour obtenir les clés ssh, lancez sur votre machine la commande

  • ssh-keygen -t rsa -b 2048 -C COMMENT

qui va générer une clé chiffrée en RSA2048 avec un commentaire COMMENT permettant de l'identifier (-C COMMENT est optionnel et, s'il n'est pas spécifié, le commentaire inséré automatiquement sera user@machine).

Une phrase de passe est demandée, la choisir assez forte pour bien protéger la clé (vous devrez vous en souvenir, sinon la clé sera inutilisable, mais vous pourrez déverouiller automatiquement la clé à la connexion, avec le gestionnaire de trousseaux de Gnome, vous évitant de devoir la saisir à chaque connexion).

On obtient deux fichiers id_rsa et id_rsa.pub, stockés dans /home/utilisateur/.ssh.

Le fichier id_rsa est votre clé privée à garder secrète, le fichier id_rsa.pub est la clé publique, à donner au serveur.

Pour donner la clé publique au serveur, utilisez la commande ssh-copy-id (si vous avez conservé la connexion par mot de passe).

Deux approches différentes sont envisageables vis-à-vis de la gestion des clés SSH.

  1. Pour certains utilisateurs, une clé == une personne, et dans ce cas, vous avez juste à transmettre les fichiers id_rsa *et* id_rsa.pub à chacune des machines avec lesquelles vous souhaitez vous connecter.
  2. Pour un ordinateur portable qui présente des risques de vol, il est plus simple de ne révoquer l'accès qu'à sa clé ssh, en cas de vol (plutôt que de devoir redistribuer les clés SSH à toutes vos machines).

Désinstallation

Voir aussi


Contributeurs principaux : jamaique.

Basé sur « TitreOriginalDeLArticle » par AuteurOriginal.