Documentation complète pour SSH¶
Table des matières¶
- Documentation complète pour SSH
SSH Client¶
Installation de SSH Client¶
-
Installer le paquet du dépot
apt:sudo apt install openssh-client
Création et utilisation de clé SSH¶
-
Générer une clé SSH :
ssh-keygen -t rsa -b 4096 -C "commentaire"- Il est recommandé de mettre un commentaire pour identifier la clé (par exemple l'utilisation qui va être faite de la clé)
-
Entrer le nom du fichier dans lequel sauvegarder la clé (il est recommandé de mettre le dossier par défaut mais de changer le nom du fichier par l'utilisation qui va être faite de la clé) :
Enter file in which to save the key ($HOME/.ssh/id_rsa):
~/.ssh/id_rsa_<custom_name> -
Entrer une passphrase pour sécuriser la clé. C'est un mot de passe qui sera demandé à chaque utilisation de la clé privée. Il est possible de laisser vide pour ne pas mettre de passphrase
Enter passphrase (empty for no passphrase):
-
Confirmer la passphrase en la retapant
Enter same passphrase again:
-
Ajouter la clé public (présente dans le fichier
~/.ssh/id_rsa_<custom_name>.pub) dans le fichier~/.ssh/authorized_keysdu serveur distant.
Ajout de la clé SSH à l'agent SSH¶
-
Vérifier que l'agent SSH est en cours d'exécution :
echo $SSH_AUTH_SOCK- Si la commande ne retourne rien, cela signifie que l'agent SSH n'est pas en cours d'exécution
-
Si l'agent SSH n'est pas en cours d'exécution, démarrer l'agent SSH
eval "$(ssh-agent -s)" -
Ajouter la clé privée à l'agent SSH
ssh-add ~/.ssh/<nom_de_la_clé><nom_de_la_clé>: Nom du fichier de la clé privée (généralementid_rsaouid_rsa_<custom_name>)- Vérifier que la clé a bien été ajoutée à l'agent SSH
ssh-add -l
Ajout de raccourci pour la connexion SSH¶
-
Éditer (ou créer) le fichier de configuration SSH
~/.ssh/config:nano ~/.ssh/config -
Ajouter une entrée pour le serveur SSH
Host <nom_du_raccourci> HostName <host> User <user> Port <port> IdentityFile ~/.ssh/<nom_de_la_clé> IdentitiesOnly yes<nom_du_raccourci>: Nom du raccourci pour la connexion SSH<host>: Adresse IP ou nom de domaine du serveur<user>: Nom d'utilisateur à utiliser sur le serveur<port>: Port SSH (par défaut 22)<nom_de_la_clé>: Nom du fichier de la clé privée (généralementid_rsaouid_rsa_<custom_name>)
-
Sauvegarder et fermer le fichier
-
Utiliser le raccourci pour se connecter au serveur distant avec SSH
ssh <nom_du_raccourci> -
Normalement, la connexion SSH devrait s'établir sans demander de mot de passe si la clé SSH a été correctement configurée
Utilisation de SSH Client¶
Connexion à un serveur distant¶
-
Se connecter à un serveur SSH :
ssh <user>@<host> -p <port><user>: Nom d'utilisateur à utiliser sur le serveur<host>: Adresse IP ou nom de domaine<port>: Port SSH (par défaut 22)
Transfert de fichier¶
-
Transférer un fichier depuis l'hôte vers un serveur SSH :
scp <fichier> <user>@<host>:<destination> -P <port><fichier>: Fichier local à transférer<user>: Nom d'utilisateur à utiliser sur le serveur<host>: Adresse IP ou nom de domaine<destination>: Destination du fichier sur le serveur
-
Transférer un fichier depuis un serveur SSH vers l'hôte :
scp -P 7518 <user>@<host>:<fichier> <destination><user>: Nom d'utilisateur à utiliser sur le serveur<host>: Adresse IP ou nom de domaine<fichier>: Fichier distant à transférer sur l'hôte<destination>: Destination du fichier en local
SSH Server¶
Installation de SSH Server¶
-
Installer le paquet du dépot
apt:sudo apt install openssh-server
Configuration de SSH Server¶
- Cette section n'est pas obligatoire, mais est fortement recommandée pour sécuriser le serveur SSH.
-
Éditer le fichier de configuration SSH
/etc/ssh/sshd_config:sudo nano /etc/ssh/sshd_config- Modifier la ligne
Portpour changer le numéro de port par défaut.- Vous pouvez choisir presque n'importe quel numéro de port entre 1024 et 65535.
-
Modifier la ligne
PermitRootLoginpour qu'elle soit égale àno.# This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. ... Port <port> ... ... PermitRootLogin no ... -
Sauvegarder et quitter.
- Modifier la ligne
-
Redémarrer le service SSH.
sudo service ssh restart -
Créer une clé SSH pour se connecter au serveur (voir Création et utilisation de clé SSH).
- Ajouter la clé publique dans le fichier
~/.ssh/authorized_keys(Normalement vous l'avez déjà fait lors de l'étape précédente). -
Redémarrer le service SSH.
sudo service ssh restart -
Essayer de se connecter au serveur SSH en utilisant la clé SSH
ssh -i ~/.ssh/<nom_de_la_clé> <user>@<host> -p <port><nom_de_la_clé>: Nom du fichier de la clé privée (généralementid_rsaouid_rsa_<custom_name>)<user>: Nom d'utilisateur à utiliser sur le serveur<host>: Adresse IP ou nom de domaine<port>: Port SSH (celui que vous avez configuré précédemment)- Si la connexion fonctionne correctement, vous pouvez désactiver l'authentification par mot de passe pour renforcer la sécurité.
- /!\ Attention /!\ : Avant de désactiver l'authentification par mot de passe, assurez-vous que vous pouvez vous connecter au serveur SSH avec la clé SSH. Sinon, vous risquez de vous retrouver bloqué hors du serveur.
- Éditer le fichier de configuration SSH
/etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config-
Modifier la ligne
PasswordAuthenticationpour qu'elle soit égale àno.# This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. ... PasswordAuthentication no ... UsePAM no ... -
Sauvegarder et quitter.
-
Redémarrer le service SSH.
sudo service ssh restart -
Vérifier que l'authentification par mot de passe est désactivée
sudo sshd -T | grep -E "passwordauthentication|usepam"- Les deux lignes retournées doivent être
passwordauthentication noetusepam no.
- Les deux lignes retournées doivent être
-
Vérifier que la connexion SSH fonctionne toujours avec la clé SSH.
ssh -i ~/.ssh/<nom_de_la_clé> <user>@<host> -p <port>
Utilisation de SSH Server¶
-
Autoriser le trafic SSH sur le port 22 :
sudo ufw allow ssh -
Éxecuter la commande suivante pour démarrer le serveur SSH :
sudo systemctl start ssh -
Pour démarrer le serveur SSH au démarrage du système :
sudo systemctl enable ssh -
Pour vérifier l'état du serveur SSH :
sudo systemctl status ssh -
Pour redémarrer le serveur SSH :
sudo systemctl restart ssh -
Pour arrêter le serveur SSH :
sudo systemctl stop ssh
SSH FileSystem (SSHFS)¶
Installation de SSH FileSystem (SSHFS)¶
SSHFS permet de monter un système de fichier distant sur son système local via SSH.
-
Installer le paquet du dépot
apt:sudo apt install sshfs
Monter un système de fichier distant¶
- Installer SSHFS
-
Créer un dossier dans lequel sera monter le système de fichier distant :
mkdir <dossier><dossier>: Nom du dossier
-
Monter le système de fichier distant :
sshfs <user>@<host>:/path/to/distant/folder /local/empty/folder<user>: Nom d'utilisateur à utiliser sur le serveur<host>: Adresse IP ou nom de domaine du serveur/path/to/distant/folder: Chemin du dossier distant à monter/local/folder: Chemin du dossier local (créé précédemment)
Licence¶
Copyright (C) 2024 Floris Robart
Authors: Floris Robart
This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.