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
Cliquez simultanément sur la touche windows + r
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:~#
Nous allons maintenant ajouter quelques sécurités supplémentaires à votre connexion SSH.
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
--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
!
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 toucheentré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
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.
Cliquez simultanément sur la touche windows + r
Entrez powershell dans le champ de la fenêtre qui s’affiche en bas à gauche de votre écran puis cliquez sur OK
Dans le terminal qui s’affiche
> start-process PowerShell -verb runas
cela lancera un nouveau shell en mode administrateur
> 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 maintainer
sur 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
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 toucheentré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 !