cClaude.rocks ☕ Le blog

[Nouvelles technologies du libre, sciences et coups de gueule…]

Menu
đŸ˜€ Ce billet a Ă©tĂ© Ă©ditĂ© le : 2024-08-16

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é.

Le protocole S/SH (pour Secure** SHell) est une méthode permettant d'envoyer des commandes de maniÚre sécurisée à un ordinateur via un réseau non sécurisé.

SSH utilise la cryptographie pour authentifier et chiffrer les connexions entre les appareils. SSH permet Ă©galement le « tunneling », ou la redirection de port, qui permet aux paquets de donnĂ©es de traverser des rĂ©seaux qu’ils ne pourraient pas traverser autrement. SSH est souvent utilisĂ© pour contrĂŽler les serveurs Ă  distance, pour gĂ©rer l’infrastructure et pour transfĂ©rer des fichiers. Les connexions X11, les ports TCP arbitraires et les sockets du domaine UNIX peuvent Ă©galement ĂȘtre transfĂ©rĂ©s via le canal sĂ©curisĂ©.


ඏ

Contexte

Ce billet se limite à la prise de main à distance à l’aide de ssh.

La machine est Ă  l’origine de la communication ssh utilisera le programme ssh. C’est le client SSH est un programme permettant de se connecter Ă  une machine distante et d’exĂ©cuter des commandes Ă  distance. Sur les systĂšmes Linux, la commande ssh (le client) est gĂ©nĂ©ralement prĂ©sent par dĂ©faut.

La machine recevant la communication, doit exĂ©cuter le serveur SSH ou dĂ©mon SSH (sshd). La partie serveur n’est pas toujours prĂ©sente par dĂ©faut, regardons l’installation de sshd Ă  partir du paquet OpenSSH.

Installer le serveur SSH sur votre machine, vous permettra de prendre Ă  distance une machine sous Linux, depuis un autre ordinateur.


ඏ

CÎté serveur SSH

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 l’activer à l’aide de :

sudo systemctl enable ssh

et le démarrer :

sudo systemctl start ssh

Pour vĂ©rifier l’état du service utilisez :

systemctl status ssh
systemctl is-enabled ssh ; systemctl is-active ssh

Si vous avez un pare-feu personnel sur cette machine, vous devez autoriser l’utilisation du port 22. C’est le port par dĂ©faut utiliser par ssh.

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 dans un premier temps depuis le serveur lui-mĂȘme, puis depuis une machine distante.

Pour utiliser le mĂȘme utilisateur sur le serveur que sur le client :

ssh <REMOTE_MACHINE_IP>

Pour utiliser un utilisateur différent sur le serveur que sur le client :

ssh <USER>@<REMOTE_MACHINE_IP>

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.


ඏ

CÎté client SSH (facultatif cÎté serveur)

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).


ඏ

CÎté client SSH (facultatif cÎté serveur)

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.

Voir le billet: 🔑 Comment crĂ©er une paire de clĂ©s pour ssh en 2024

Si vous trouvez le billet trop compliqué, utilisez cela :

ssh-keygen -a 100 -t ed25519 -C "${USER}@${HOSTNAME}.$( date +'%Y-%m' )" -f "${HOME}/.ssh/id_ed25519" -N ''

On ne 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.


ඏ

CÎté serveur SSH (et cÎté client)

Sécurisation de votre répertoire ~/.ssh

Si vous venez de créer une clée ssh, il est probable que ces lignes ne soient pas nécessaires, la commande ssh-keygen ayant déjà fait ce travail.

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.

ඏ

CÎté client SSH (facultatif cÎté serveur)

Configuration des machines clientes

Si vous venez de créer une clée ssh, il est probable que ces lignes ne soient pas nécessaires, la commande ssh-keygen ayant déjà fait ce travail.

Sur les machines clientes vous devez avec les fichiers ~/.ssh/id_ed25519 et ~/.ssh/id_ed25519.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_ed25519 # S’assure que le fichier appartient à l’utilisateur courant
chmod 600 ~/.ssh/id_ed25519       # S’assure que le fichier n’est visible que par l’utilisateur courant

ඏ

Configuration des machines serveurs

CÎté client SSH (facultatif cÎté serveur)

Sur les machines serveurs, la configuration se trouve Ă©galement sous chaque dossier utilisateur, dans le dossier ~/.ssh.

(rappel de ce qui a été vu plus haut)

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.

Sur les machines serveurs, 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. Cela peut se faire manuellement, mais il existe une solution avec sh-copy-id.

CÎté client SSH

Pour activer le lien d'approbation, depuis la machine cliente, utilisez :

ssh-copy-id user@serverip

Vous pouvez contrÎler le contenu du fichier ~/.ssh/authorized_keys :

cat ~/.ssh/authorized_keys # pour Ă©diteur utiliser nano ou vi Ă  la place de cat

ඏ

CÎté client SSH (facultatif cÎté serveur)

Connexion depuis une machine cliente

Depuis la machine cliente (depuis laquelle vous souhaitez accéder au serveur) :

ssh <REMOTE_USER>@<REMOTE_MACHINE_IP>

Lorsque le nom d’utilisateur est le mĂȘme sur la machine distante que sur la machine cliente, vous pouvez utiliser simplement :

ssh <REMOTE_MACHINE_IP>

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, vous n’aurez alors qu’à saisir le mot de passe que pour cette Ă©tape de configuration.


ඏ

Liens

኿


â„č 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog