Configurer la connexion SSH

Pour accéder à la console de votre serveur vous devrez effectuer une connexion par tunel SSH. C’est une connexion sécurisée qui va chiffrer le dialogue entre votre ordinateur et votre serveur. Pour cela, vous devez avoir un client SSH sur votre ordinateur local et configurer le service SSH sur votre serveur.

Sommaire du tutoriel


1. Première connexion

  1. Ouvrez simplement un terminal
  1. Cliquez simultanément sur la touche windows + r

  2. Entrez cmd dans le champ de la fenêtre qui s’affiche en bas à gauche de votre écran puis cliquez sur OK

    > ssh root@ip_du_serveur

le message suivant s’affiche:

    The authenticity of host '138.68.87.113 (138.68.87.113)' can't be established.
    ECDSA key fingerprint is SHA256:RBuop6/a8DrySzRx+XSw2uhY38DKkmlrjfMY+55iGAo.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

répondre yes

    Warning: Permanently added '138.68.87.113' (ECDSA) to the list of known hosts.

Le terminal vous demande maintenant le mot de passe pour l’utilisateur root

    root@138.68.87.113's password:

Entrez le mot de passe puis validez en appuyant sur la touche entrée.

Vous êtes maintenant connecté au terminal de votre serveur distant !

    root@v2202206177897232182:~#


2. Sécurisation du server

Nous allons maintenant ajouter quelques sécurités supplémentaires à votre connexion SSH.

2.1 Ajouter un utilisateur

La première chose à faire est de réduire les droits d’exécution de votre utilisateur de connexion. L’utilisateur root a tous les droits sur le système et il peut être dangereux qu’il tombe entre de mauvaises mains ou que vous exécutiez une mauvaise manipulation par erreur. Nous allons donc créer un nouvel utilisateur dédié à cette connexion.

Connectez-vous avec l’utilisateur root à votre serveur puis entrez les commandes suivantes :

    > adduser --gecos "" maintainer
  • L’option --gecos n’affichera pas les question relative à l’identité du nouvel utilsateur (Nom, Prénom, N° de téléphone, …)
    Adding user `maintainer' ...
    Adding new group `maintainer' (1000) ...
    Adding new user `maintainer' (1000) with group `maintainer' ...
    Creating home directory `/home/maintainer' ...
    Copying files from `/etc/skel' ...
    New password:
    Retype new password:
    passwd: password updated successfully

Choisissez votre mot de passe puis validez par la touche entrée.

Ajoutons le nouvel utilisateur créé au groupe des “sudoers” pour élever son niveau d’exécution

    > usermod -aG sudo maintainer

Vous pouvez maintenant vous connecter avec l’utilisateur maintainer !

2.2 Changer le port SSH

Pour cela nous allons éditer le fichier de configuration du service SSH

Connectez-vous avec l’utilisateur maintainer à votre serveur puis entrez les commandes suivantes :

    > sudo nano /etc/ssh/sshd_config

Remplacer la ligne

    #Port 22

par (ou tout autre port disponible de votre choix)

    Port 22123

Pour sauvegarder avec nano: Ctrl+x et validez par la touche y puis la touche entrée

Pour que le système prenne en compte la modification :

    > sudo systemctl restart ssh

A l’avenir pour vous connectez au serveur vous devrez entrer depuis votre terminal local :

    > ssh maintainer@ip_du_serveur -p 22123

2.3 Créer une clé public/privée (côté client)

Pour sécuriser un peu plus notre connexion SSH, nous allons maintenant créer un paire de clé pubic/privée pour chiffrer nos échanges avec le serveur.

  1. Ouvrez simplement un terminal
  1. Cliquez simultanément sur la touche windows + r

  2. Entrez powershell dans le champ de la fenêtre qui s’affiche en bas à gauche de votre écran puis cliquez sur OK

  3. Dans le terminal qui s’affiche

    > start-process PowerShell -verb runas

cela lancera un nouveau shell en mode administrateur

  1. Entrez la commande suivante pour activer le service SSH sur votre machine
    > Get-Service -Name sshd | Set-Service -StartupType Automatic

puis la commande

    > Start-Service sshd

Nous allons créer une paire de clé public / clé privée

    > ssh-keygen -t RSA -C "tuto@bitgen.com"

Vous pouvez appuyer sur entrée pour accepter la valeur par défaut ou indiquer un chemin et/ou un nom de fichier où vous aimeriez que vos clés soient générées.

La passphrase est optionnelle

    Generating public/private RSA key pair.
    Enter file in which to save the key (C:\Users\hlavi/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in id_rsa.
    Your public key has been saved in id_rsa.pub.
    The key fingerprint is:
    SHA256:mvNMWgMO+QbD9GTQuSjD556wYK63kwMp3nyZzRVftGU tuto@bitgen.com
    The key's randomart image is:
    +---[RSA 3072]----+
    |    .. .         |
    |     .o      . E |
    | .  ..o.    . +  |
    |  +oo=.  .   o   |
    | . =* o S o .    |
    |=.. .* + . .     |
    |=oo= .% =        |
    | o*oo= X .       |
    |o..+. . o        |
    +----[SHA256]-----+

Nous devons ensuite copier la clé public sur le server.

Créons le dossier /home/maintainer/.ssh pour l’utilisateur maintainersur le serveur :

    > ssh maintainer@ip_du_serveur -p 22123 mkdir /home/maintainer/.ssh

Entrez le mot de passe pour valider la création du dossier

    > ssh-copy-id -p 22123 -i ~/.ssh/id_rsa.pub maintainer@ip_du_serveur

Toujours dans la console PowerShell

Copions la clé dans le répertoire tout juste créé

    > scp -P 22123 C:\Users\votre_utilisateur_windows/.ssh/id_rsa.pub maintainer@ip_du_serveur:/home/maintainer/.ssh/authorized_keys

Entrez le mot de passe pour valider la copie du fichier

2.4 Authentification par clé (côté serveur)

Maintenant que nous avons créé un nouvel utilisateur, changé le port de connexion de notre service SSH et transféré la clé public de notre ordinateur sur le serveur, nous allons interdire la connexion direct par mot de passe ainsi que l’utilisateur root et plutôt préférer une clé d’authentification.

Editez le fichier de configuration du service SSH

    > sudo nano /etc/ssh/sshd_config

Remplacer la ligne

PermitRootLogin yes

Par

PermitRootLogin no

Puis la ligne

PasswordAuthentication yes

Par

PasswordAuthentication no

Et pour finir, dé-commenter la ligne

#PubkeyAuthentication yes

par

PubkeyAuthentication yes

Pour sauvegarder avec nano: Ctrl+x et validez par la touche y puis la touche entrée

Valider ensuite la configuration en redémarrant le service SSH

    > sudo systemctl restart ssh

Vous pouvez maintenant vous connecter sans mot de passe, directement à partir de votre clé SSH !