Installation d’OpenSSH
Debian & *Buntu
Sur une Debian GNU/Linux, ou une *Buntu, et autre dérivées :
apt install ssh
…
Quelle que soit la distribution Linux utilisé, le fichier de
configuration se trouve être /etc/ssh/sshd_config*
.
OpenBSD
Sur OpenBSD, c’est installé dans le système de base !
Utilisation de SSH
SSH est très facile à utiliser :
Connexion à distance vers le serveur
ssh server.domaine.com
ou ssh adresse_ip
est la méthode de base.
Dans ce cas, si la connexion se fait, il vous sera demandé votre nom d’utilisateur sur ce serveur, et le mot de passe correspondant.
ssh votre_nom_user@server.domaine.com
ou
ssh -l votre_nom_user server.domaine.com
est la manière de spécifier
explicitement votre nom d’utilisateur.
Dans ce cas, dès la connexion établie, il ne vous sera demandé plus que le mot de passe correspondant à votre identifiant utilisateur.
Exécution de commandes à distance
Il suffit d’établir une connexion avec la commande à lancer :
ssh votre_nom_user@server.domaine.com date
Précisément, cette commande interroge le serveur pour connaître ses date et heure.
Copie de fichier à distance
C’est la commande scp
, tout autant sécurisée, qui le permet aussi
simplement.
scp monfichier votre_nom_user@server.domaine.com:/~/
enverra le
fichier dans votre répertoire personnel sur le serveur en question.
scp votre_nom_user@server.domaine.com:/~/monfichier monfichier
ira
chercher sur le serveur votre fichier et le déposera dans votre
répertoire en cours.
Pour faire une copie récursive d’un répertoire :
ssh -r /votre_rep votre_nom_user@server.domaine.com:/~/
Transfert ftp
Le transfert de fichiers par ftp, de manière sécurisée, est aussi possible…
Utilisez la commande suivante : sftp votre_nom_user@server.domaine.com
Certains clients FTP graphique acceptent ce mode de connexion, il suffit de choisir le mode de connexion sftp over SSH2.
Authentification sécurisée par SSH
Configuration du service
OpenSSH permet des méthodes diverses d’authentification, et ce en fonction de la politique de sécurité privilégiée.
- Une des premières choses à faire est d’interdire l’accès au compte root, afin de ne pas “tenter le diable” : Il faut donc modifier la ligne
PermitRootLogin
en lui donnant la valeur no. - Forcer la sécurité sur la deuxième version du protocole est à envisager sérieusement ; par la modification de la ligne Protocol en lui donnant la valeur
2
(version de protocole plus sécurisée) - Créer l’authentification par mot de passe, et interdire les mots de passe vides. Donc s’assurer que la ligne
PasswdAuthentication
soit àyes
et quePermitEmptypasswords
soit àno
. - Encourager l’authentification par clé publique est à promouvoir ; car une clé appartient à un utilisateur et un seul… Cela signifie positionner la ligne
PubkeyAuthentication
àyes
et supprimer le symbole dièze devant la ligneAutorizedKeysFile
. - Pour finir par supprimer les protocoles moins sécurisés : ce qui signifie d’imposer aux lignes
RSAAuthentication
,RhostsAuthentication
,RhostsRSAAuthentication
etHostbasedAuthentication
la valeurno
et d’ignorerIgnoreRhosts
paryes
, si elles sont présentes dans le fichier ! - Pour information, il est possible de manière rudimentaire et exclusive de spécifier les autorisations uniquement à certains utilisateurs ou à un groupe d’utilisateurs. On se servira pour cela des directives
AllowUsers
etAllowGroups
que l’on ajoutera au fichier de configuration.
Une fois le fichier sshd_config
modifié, pensez donc à
(re)démarrer le service :
/etc/init.d/sshd restart
ou service ssh restart
Usage de clé publique
L’usage de clé publique ayant été notifié dans le fichier de
configuration et aux utilisateurs,il est possible de les créer par la
commande suivante ssh-keygen
.
ssh-keygen -t rsa -b 2048
ATTENTION : Il est recommandé les deux choses suivantes :
- ne pas générer des clés plus petites que 2048 bits , préférez une valeur de 4096 bits ;
- de même, les protocoles de chiffrement DSA et ECDSA ne doivent plus être utilisés … utilisez RSA ou au mieux un protocole de chiffrement à courbes elliptiques, tel ed25519 !
Pour plus d’informations, veuillez lire mon autre article
Lors de la génération de celle-ci, il vous sera demandé de taper une passphrase que vous choisirez consciencieusement.
Dans un cas, comme dans l’autre, cela crée une clé privée et une clé
publique dans votre répertoire personnel $HOME/.ssh/
; pour les
clés RSA, ce sont les fichiers id_rsa et id_rsa.pub,
et réciproquement pour les autres clés.
Veillez à ne jamais fournir la clé privée, et ce sous aucun prétexte. Votre sécurité en dépend fortement !
Une fois, vos clés générées, copiez votre clé publique sur le serveur :
scp -p $HOME/.ssh/id_rsa.pub votre_nom_user@server.domaine.com:/~/.ssh/authorized_keys
Ensuite on va garder en mémoire la passphrase dans notre ordinateur afin
de ne pas être obligé de la taper à chaque fois :
eval ssh-agent ssh-add
Pour la dernière fois, il va vous être demandé de taper votre passphrase, faites-le.
Lors de vos prochaines connexions en SSH sur le serveur, il ne vous restera plus… qu’à travailler !
Création de Tunnel
Pour créer un tunnel de connexion ssh, qui permette d’encapsuler
d’autres protocoles, il vous faut vous l’écrire ainsi :
ssh -L numero_port_encapsulé:adresse_ip_local:numero_port_routé adresse_ip_server
- L’option
-L
indique l’exécution locale, - L’option
-R
indique l’exécution à distance.
Tunnel X
Pour créer un tunnel graphique X-Windows, il faut d’abord vérifier que
l’option X11 Forwarding
soit à yes
dans le fichier
/etc/ssh/sshd_config
.
Cela étant fait, il ne vous reste plus qu’à vous connecter à votre hote
distant : ssh -X nom_machine.nom_domaine.tld
Il est possible de lancer en même temps une application :
ssh -X nom_machine.nom_domaine.tld nom_logiciel &
Ce mémo a été écrit la première fois, par mes soins, sur mon autre site “Mémoire Grise Libérée”.