wiki:GnuLinuxAdminSsh

Ce chapitre fait partie du cours d'aministration de GNU/Linux.

GNU/Linux - Administration - SSH

1. Introduction

Comme l'administration d'un serveur GNU/Linux se résume à l'édition de fichiers de configuration et l'exécution de commandes, il est facile d'effectuer de telles tâches à distance, à l'aide d'un simple shell déporté via le réseau. L'application traditionnellement utilisée était telnet, mais celle-ci est très simpliste et à le terrible inconvénient de laisser passer en (très) clair toutes les informations, y compris les mots de passe.

SSH est venu remplacer telnet, et apporte non seulement une sécurité qui n'existait pas auparavant, mais une foule de nouveaux services (authentication par clé publique, tunneling, etc).

2. Utilisation

Le port standard SSH est le 22/TCP. Si vous êtes administrateur, il est vital de vous assurer en tout premier lieux que vos pare-feux autorisent bien le traffic sur ce port. Si vous désirez élaborer des règles complexes limitant l'accès à ce port, sachez que vous avez de grandes chances de vous tirer dans le pied au plus mauvais moment, et qu'une bonne configuration de SSH vaut 10 mauvaises configurations de pare-feu.

Côté poste de travail

Vous aurez besoin d'un client SSH, ce qui est acquis pour tout système GNU/Linux moderne. Pour les utilisateurs de Windows (mauvaise idée!): Putty. Vous aurez besoin des programmes putty.exe et puttygen.exe.

Vous aurez besoin de générer une paire de clé (publique/privée), et de mettre à disposition votre clé publique (pour l'installer facilement sur les serveurs). Sous GNU/Linux:

$ ssh-keygen -t rsa

Aux questions proposées concernant les noms de fichier, appuyez sur Entrée (les noms conviennent). Concernant la passphrase, vous avez deux choix stratégiques:

  • soit ne pas en saisir (appuyez sur entrée). Dans ce cas, toute personne ayant accès à votre clé privée (par ex. en empruntant votre poste pendant qu'il est loggé) peut immédiatement utiliser cette clé pour accéder aux serveurs que vous vous êtes autorisés;
  • soit choisir une passphrase (en général une phrase assez longue mais simple à retenir), et dans ce cas vous aurez intérêt à utiliser un programme auxiliaire (cf. pageant) qui va retenir pour vous les passphrases pendant quelques heures, de sorte que vous n'ayez à la taper que quelque fois par jour (et non à chaque connexion avec un serveur, ce qui peut atteindre quelques centaines de sessions dans une bonne journée!).

La clé publique est celle dont le préfixe finit par .pub. Mettez-la en libre service, par exemple via Apache ou Samba. Vous aurez besoin de pouvoir la récupérer facilement depuis n'importe où sur votre réseau.

Côté serveur

Une distribution moderne installée avec un minimum d'options possède toujours un serveur SSH configuré et activé. En général, vous voulez accéder en tant que root sur ce serveur, depuis votre poste de travail. La manipulation est simple:

# cd ~
# mkdir .ssh
# wget http://monpostedetravail/pub/id_rsa.pub
# mv id_rsa.pub .ssh/authorized_keys

Nous avons récupéré notre clé publique (préalablement diffusée via un serveur HTTP sur notre poste de travail), et l'avons placée dans le fichier /root/.ssh/authorized_keys. Désormais, la personne qui possède la clé privée correspondante aura un accès administrateur à cette machine, sans dépendre du mécanisme de mot de passe local. Vous pouvez même changer le mot de passe root local en quelque chose de très compliqué et l'oublier (si vous avez un accès physique au serveur, il existe de toute façons un moyen de le réinitialiser).

3. Configuration

La configuration du serveur s'effectue dans /etc/ssh/sshd_config. Voici les directives les plus importantes à retenir:

  • PermitRootLogin?: autorise l'utilisateur root à se logger seulement si cette valeur vaut yes
  • PubkeyAuthentication?: autorise le mécanisme d'authentification basée sur la clé publique, yes conseillé
  • PasswordAuthentication?: autorise le mécanisme d'authentification basé sur le mot de passe local, no recommandé
  • UsePAM: autorise le mécanisme d'authentification générique PAM (en général configuré pour utiliser le mot de passe local), no recommandé
Last modified 14 years ago Last modified on Sep 3, 2006, 1:21:44 AM