Le protocole ssh est conçu pour fournir des communications cryptĂ©es sĂ©curisĂ©es entre deux ordinateurs (hĂŽtes) non approuvĂ©s sur un rĂ©seau non sĂ©curisĂ©. Les connexions X11, les ports TCP arbitraires et les sockets du domaine UNIX peuvent Ă©galement ĂȘtre transfĂ©rĂ©s via le canal sĂ©curisĂ©.
La machine est Ă lâorigine de la communication ssh utilisera le programme ssh
. Le client SSH est un programme permettant de se connecter Ă une machine distante et dâexĂ©cuter des commandes Ă distance.
La machine recevant la communication, doit exécuter le démon ssh. Ici nous allons voir comment installer sshd
Ă partir du paquet OpenSSH.
Installer le serveur SSH sur votre machine, vous permettra de prendre Ă distance votre ordinateur, depuis un autre.
Installation de sshd
Ces opĂ©rations doivent se faire sur la machine distante, et par consĂ©quent avant dâavoir besoin dây accĂ©der Ă distance.
Installation :
sudo apt-get update &&
sudo apt-get install -y openssh-server
Vérifier que le démon ssh est activable et activé :
systemctl is-enabled ssh && systemctl is-active ssh
Si ce nâest pas le cas, vous le rendre activable :
sudo systemctl enabled ssh
et le démarrer :
sudo systemctl start ssh
Pour vĂ©rifier lâĂ©tat du service utilisez :
systemctl status ssh
sudo systemctl enable ssh
Si vous avez un pare-feu personnel sur cette machine, vous devez autoriser lâutilisation du port 22.
Dans le cas de ufw
, voici comment configurer cela :
sudo ufw allow 22/tcp
Plus d'informations sur la configuration du pare-feu [EN]
Vous pouvez faire un test rapide pour voir si vous pouvez au moins joindre le service sshd
depuis une machine distante.
ssh <REMOTE_MACHINE_IP> # Depuis la machine que vous ĂȘtes en train dâinstaller, dâabord
# Puis idéalement depuis une autre machine, afin de vérifier que tout fonctionne.
Si un mot de passe est demandĂ©, vous pouvez annuler lâopĂ©ration simplement avec (CTRL + c) : tout va bien. Sinon, vĂ©rifiez les Ă©tapes prĂ©cĂ©dentes.
Effectuer une connexion à distance :
Nous appellerons la machine locale ou machine cliente, lâordinateur sur lequel vous ĂȘtre physiquement, et la machine distante ou machine serveur, lâordinateur sur lequel vous souhaitez travailler.
Pour utiliser pleinement le protocole ssh, je vous conseille de vous créer une paire de clé, celle-ci devra se trouver sur la machine locale.
Ensuite sur la machine distante, vous devrez dĂ©finir lâapprobation de cette clĂ© (en donnant votre clĂ© publique).
Création de la paire de clés ssh
Notez que si vous souhaitez mettre en place cela pour plusieurs utilisateurs, vous devrez répéter cette opération sur chaque compte utilisateur.
La commande typique est la suivante, les autres champs pouvant rester dans un premier temps avec les valeurs par défaut.
ssh-keygen -t rsa -b 4096 -C "${USER}@$(hostname)"
Par défaut, votre clé publique sera : ~/.ssh/id_rsa.pub
Si vous ne souhaitez pas avoir Ă rĂ©pondre Ă toutes les questions, typiquement dans le cas dâun script vous devrez utiliser quelque chose comme :
ssh-keygen -t rsa -b 4096 -C "votre commentaitre" -f "${HOME}/.ssh/my_id_rsa" -N ''
Et je vous propose de remplir le champ commentaire comme suit, cela vous aidera à identifier vos clés si vous en utiliser plusieurs :
ssh-keygen -t rsa -b 4096 -C "${USER}@${HOSTNAME}" -f "${HOME}/.ssh/id_rsa" -N ''
Je rentre pas ici dans le dĂ©tail permettant dâutiliser plusieurs clĂ©s, ni comment protĂ©ger vos clĂ©s par un mot de passe. Ce nâest pas absolument nĂ©cessaire si vous protĂ©ger bien lâaccĂšs Ă votre machine.
Sécurisation de votre répertoire ~/.ssh
Sur toutes les machines clientes ou serveurs vous devez avoir un dossier ~/.ssh
(donc par utilisateur étant concerné par les accÚs ssh)
mkdir -p ~/.ssh
chown -R "${USER}" ~/.ssh # Sâassure que le dossier appartient Ă lâutilisateur courant
chmod 700 ~/.ssh # Le 700 nâest pas nĂ©cessaire, mais câest le plus simple Ă gĂ©rer.
Configuration des machines clientes (machines locales)
Sur les machines clientes vous devez avec les fichiers ~/.ssh/id_rsa
et ~/.ssh/id_rsa.pub
, généré par la commande ssh-keygen
décrite ci-dessus.
Il faut absolument que votre clé privée ne soit accessible que par vous :
chown "${USER}" ~/.ssh/id_rsa # Sâassure que le fichier appartient Ă lâutilisateur courant
chmod 600 ~/.ssh/id_rsa # Sâassure que le fichier nâest visible que par lâutilisateur courant
Configuration des machines serveurs (machines distantes) â Facultatif
Sur les machines distantes, vous devez configurer le lien dâapprobation :
touch ~/.ssh/authorized_keys # CrĂ©ation du fichier sâil nâexiste pas
chown "${USER}" ~/.ssh/authorized_keys # Sâassure que le fichier appartient Ă lâutilisateur courant
chmod 600 ~/.ssh/authorized_keys # Sâassure que le fichier nâest visible que par lâutilisateur courant
Ensuite pour crĂ©er le lien dâapprobation vous devez ajouter votre clĂ© publique Ă ce fichier, si vous souhaitez configurer plusieurs clĂ©s, il faut mettre une clĂ© par ligne.
Connexion
Depuis la machine locale :
ssh <REMOTE_USER>@<REMOTE_MACHINE_IP> # Depuis la machine locale/cliente
Lorsque le nom dâutilisateur est le mĂȘme sur la machine distante que sur la machine locale, vous pouvez utiliser :
ssh <REMOTE_MACHINE_IP> # Depuis la machine locale/cliente
Si lâapprobation est bien configurĂ©e, vous nâaurez pas Ă rentrer de mot de passe, sinon vous devrez saisir le mot de passe pour lâutilisateur distant. Il est donc possible de configurer lâapprobation Ă distance.
En savoir +
኿