openssh
Configuration



Le serveur

Les clés

Comme expliqué précédemment, la génération des clés du serveur est automatique pour installation faite depuis les sources du logiciel. On retrouvera donc les fichiers suivants (en fonction bien sûr des options d'installation pour la localisation des différents fichiers) :

clés privés :
clés publiques :

Le fichier de configuration

Afin de configurer le serveur OpenSSH, il suffit d'éditer le fichier de configuration /etc/sshd_config, qui contient déjà une configuration par défaut mais qu'il convient d'adapter à ses besoins. Faites un "man sshd_config" afin de connaître toutes les options disponibles.
Voici un exemple de configuration :

#    $OpenBSD: sshd_config,v 1.65 2003/08/28 12:54:34 markus Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options change a
# default value.

#Paramètres de connexion
#-----------------------
Port 22
ListenAddress 0.0.0.0
KeepAlive yes

#Protocoles utilisées
# ici on ne souhaite utiliser que SSH2
#--------------------
Protocol 2

# Chemin pour les clés
#---------------------
HostKey /usr/local/etc/ssh_host_rsa_key
HostKey /usr/local/etc/ssh_host_dsa_key



#Paramètres pour les log
#-----------------------
SyslogFacility AUTH
LogLevel INFO



#---------------------------
# Authentication utilisables:
#---------------------------

# Par clé publique :
#------------------
RSAAuthentication no
PubkeyAuthentication yes

#Par type de machine :
#--------------------
RhostsRSAAuthentication no
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no

#Par mot de passe
#----------------
PasswordAuthentication no
PermitEmptyPasswords no


#----------------
#Option générales
#----------------

PermitRootLogin no

# On vérifie que les fichiers utilisateurs sont
# correctement protégés
#-------------------------------------------
StrictModes yes

# Encapsulation automatique du protocole X
#-----------------------------------------
X11Forwarding yes
X11DisplayOffset 10


# Fichiers des clés publiques autorisées
#---------------------------------------
AuthorizedKeysFile ~/.ssh/authorized_keys   


Il existe d'autres options visibles dans le fichier de configuration par défaut fourni à l'issu de l'installation et dont le sens est explicité dans les pages du manuel.


Le client

Les clés


La génération des clés du client est à la charge de ce dernier qui aura recours à la commande ssh-keygen. Ce programme génère à chaque invocation un couple de clés privé/publique du type spécifié en paramètre :

$ ssh-keygen -t
Cette commande génère un couple de clé RSA pour SSH1 : ~/.ssh/identity et ~/.ssh/identity.pub

$ ssh-keygen -t rsa
Cette commande génère un couple de clé RSA pour SSH2 : ~/.ssh/id_rsa et ~/.ssh/id_rsa.pub

$ ssh-keygen -t dsa
Cette commande génère un couple de clé DSA uniquement disponible sur SSH2 : ~/.ssh/id_dsa et ~/.ssh/id_dsa.pub

ssh-keygen accepte également d'autres options comme l'option "-b" qui permet de spécifier la taille (en bits) des clés générées. Je vous invite encore une fois à vous référer aux pages de man pour en savoir plus.


Le fichier de configuration

Le fichier de configuration du client ~/.ssh/config ou /usr/local/etc/ssh_config peut parfaitement être vide, dans ce cas le client tentera de s'adapter aux mieux  à la configuration du serveur. Néanmoins, un grand nombre d'options sont disponibles pour négocier au mieux une connexion sécurisée avec le serveur.

Voici un exemple de fichier de configuration :

#    $OpenBSD: ssh_config,v 1.19 2003/08/13 08:46:31 markus Exp $

# This is the ssh client system-wide configuration file.  See
# ssh_config(5) for more information.  This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.

# Configuration data is parsed as follows:
#  1. command line options
#  2. user-specific file
#  3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.

# Site-wide defaults for various options

# Host *
# ForwardAgent no
    ForwardX11 yes
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   Port 22
Protocol 2

# Algo de chiffrement pour SSH1 :
#Cipher 3des

# Liste des algo de chiffrement à utiliser par
# ordre de préférence pour SSH2 :
#Ciphers aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc

#   EscapeChar ~


Les options commentées correspondent à la configuration par défaut du client. Pour changer celles-ci, il suffit de "décommenter" les  lignes  voulues et  de modifier la valeur des paramètres.