cClaude.rocks ☕ Le blog

L'informatique et les nouvelles technologies

Menu

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 +

ᦿ


ℹ 2006 - 2020 | 🕸 Retour à l'accueil du domaine | 🏡 Retour à l'accueil du blog