tutoriel d'installation d'OpenSSH par Michael Bideau et Richard Demongeot


Installation de openssh (client-server) sous Debian

SSH est un protocole de prise de commande a distance de maniere securisee.
Il fonctionne en mode client/serveur.

OpenSSH est un des nombreux projet de l'equipe OpenBSD



Le tuto (aussi détaillé soit-il) ne dispense pas
de la lecture des infos/questions affichées à l'écran

Partie Client

Permet la prise de controle d'une machine distante ayant un serveur SSH.

Installation du client openSSH (debian)

-> Mettez à jour la liste des paquets disponibles
apt-get update

-> Installez openSSH client
apt-get install openssh-client

Le systeme indique qu'il dépend d'autres paquets / librairies, notamment de:
libedit2 --

Librairie permettant de gerer un historique
et certaines fonction d'edition.

libkrb53 --

Librairie pour le protocole Kerberos
Kerberos est un systeme d'autentification des
utilisateurs/services d'une machine ou d'un reseau, de
maniere securisee. (Ce n'est ni le systeme ni
l'utilisateur qui valide, mais une troisieme entitee,
le serveur kerberos). Ce paquet contiens aussi le client
kerberos.

Le système suggère aussi l'installation d'autres paquets tels que:
krb5-doc --

documentation / implementations pour le protocole kerberos5

krb5-user --

Contiens les outils basiques pour communiquer avec un
serveur kerberos, qui permettent notemment de changer
de mot de passe etc...

ssh-askpass --

/!\ Il s'agit d'une application graphique
Permet de demander a un utilisateur une "passphrase"
lors de l'utilisation de "ssh-add".
ssh-add ajoute une clef (systeme de base pour
l'autentification par openssh) a u utilisateur donne.

xbase-clients --

/!\ Il s'agit d'une application graphique
Il s'agit d'uneinterface entre le serveur graphique
et les applications tierces.

Il ne me parait pas nécessaire d'installer les paquets suggérés car
les mécanisme d'autentifications kerberos me parraissent trop lourd
pour un usage personnel et/ou un petit serveur. De plus, selon moi,
l'autentification doit se faire du cote du serveur ssh et non du client.

-> Indiquez que vous confirmez l'installation :
Souhaitez vous continuer [O/n] ? O

Il s'effectue donc l'installation proprement dite de tous les paquets.

Il n'y as pas de configuration post-installation.

Partie Serveur

Le serveur permet d'accepter les connection de type SSH depuis des machines
distantes. Cela permet donc de laisser une machine munie d'un serveur ssh dans
un coin, et de la controler à distance, sans pour autant s'allourdir d'un
écran et d'un clavier pour la dite machine.

Les cas ou cette utilisation peut etre utile :
* Un serveur web perso
* Un serveur de donnee pour la maison / le bureau
* Une passerelle internet
* Un serveur mail

Installation du serveur openSSH (debian)

-> Mettez à jour la liste des paquets disponibles
apt-get update

-> Installez openSSH server
apt-get install openssh-server

Le système suggère aussi l'installation d'autres paquets tels que:
ssh-askpass --

/!\ Il s'agit d'une application graphique
Permet de demander a un utilisateur une "passphrase"
lors de l'utilisation de "ssh-add".
ssh-add ajoute une clef (systeme de base pour
l'autentification par openssh) à un utilisateur donné.

xbase-clients --

/!\ Il s'agit d'une application graphique
Il s'agit d'une interface entre le serveur graphique
et les applications tierces.

rssh --

Shell alternatif a BASH par exemple mais qui fonctionne en
mode restreint. En effet, seules les commandes scp (copie
au travers d'un tunnel ssh) sftp (ftp par un tunnel ssh)
les commandes relatives aux cvs, ou encore pour rsync
sont autorisées.
Ce shell permet aussi de vérouiller les utilisateurs dans
leur répertoire personnels.

Il n'y as pas d'action de validation de l'installation du fait qu'il n'y
as pas de paquets nécessaire au fonctionnement de openssh-server à installer
(probablement les mêmes que pour openssh-client).


L'installation proprement dite commence alors...

/!\ cette étape est longue du fait de la génération des clefs de cryptage
servant à authentifier le serveur. (A priori unique car aléatoire, cette
clef est échangée a la connexion du client. Celui-ci doit accepter la clef
lors de la premiere connexion, et refuse de se reconnecter sur le serveur
ayant le meme nom si cette clef change, ceci afin d'eviter les usurpation de
serveur.)

Conseil : Interdire aux gens de se connecter en root directement
quand ils passent par ssh. Indépendamment de la "force" des mot de passe,
cela oblige un intrus eventuel à connaitre le login d'un autre compte avant
de pouvoir passer root sur la machine.

Pour se faire tapez les commandes :
vi /etc/ssh/sshd_config -> édite le fichier de conf du serveur
apputez sur "echap" puissaisissez "/PermitRootLogin" -> recherche la ligne à changer
se placer sur le "y" de "yes"
tapez "cw" (change word => changer un mot)
tapez "no"
appuyez sur "echap" puis saisissez ":wq" (sauvegarder et quitter)
Enfin relancez le serveur ssh avec la nouvelle configuration:
/etc/init.d/ssh restart

Les clefs SSH

OpenSSH permet une authentification par clef. Cela est très intéressant notamment
pour utiliser des copies par dessus SSH, et ce sans mot de passe.

Sur le serveur qui va initier la connexion, il faut générer la clef SSH.
Nous allons donc gén&eacure;rer une clef de 2048 bits, ce qui est suffisant
pour la pluspart des utilisations.

ssh-keygen -t rsa -B 2048
Ensuite, appuyez sur entrée à chaque questions.

Dans le cas d'une tâche cron, il est intéréssant de ne pas mettre de mot de passe.

Ensuite, il faut copier la clef ainsi générée :
cat ~/.ssh/id_rsa.pub

Et de le copier dans le fichier authorized_keys du serveur.
Editez donc ~/.ssh/authorized_keys et ajoutez y la clef copiée.



[FIN]