Publicité

Comment s'authentifier via SSH avec des clés au lieu de la clé de mots de passeSSH est un excellent moyen d'accéder à distance à votre ordinateur. Semblable à FTP, vous pouvez vous connecter via FTP SSH Qu'est-ce que SSH et en quoi c'est différent de FTP [Technologie expliquée] Lire la suite pour obtenir un accès sécurisé à un serveur de fichiers avec votre favori Client FTP Maîtrisez les transferts de fichiers FTP sur tous vos sites avec FileZillaUn grand nombre de clients FTP d'autrefois ont eu des problèmes en ce qui concerne les transferts de fichiers volumineux. Les applications ont connu les délais d'attente habituels auxquels vous vous attendez lorsque l'ordinateur reste là pendant 15 à... Lire la suite , accéder rapidement à des fichiers distants ou même monter un disque réseau sur votre ordinateur. Mais SSH ne se limite pas à l'accès à des fichiers à distance. Connexion via SSH dans Terminal (ou en utilisant Mastic sous Windows) vous donne un accès shell à distance (après tout, SSH est l'abréviation de Secure SHell). C'est ainsi que je gère mon serveur multimédia à distance.

instagram viewer

Lorsque vous ouvrir les ports Qu'est-ce que la redirection de port et comment peut-elle m'aider? [MakeUseOf explique]Est-ce que vous pleurez un peu à l'intérieur quand quelqu'un vous dit qu'il y a un problème de redirection de port et c'est pourquoi votre nouvelle application brillante ne fonctionnera pas? Votre Xbox ne vous laissera pas jouer à des jeux, vos téléchargements torrent refusent... Lire la suite sur votre routeur (le port 22 pour être exact), vous pouvez non seulement accéder à votre serveur SSH depuis votre réseau local, mais depuis n'importe où dans le monde.

Cependant, vous ne voulez pas risquer d'utiliser un mot de passe faible pour l'authentification. Si quelqu'un accède à votre ordinateur via SSH, il obtient un accès shell complet. Pour être clair, ce n'est pas quelque chose que nous voulons. Heureusement, il est très facile de configurer votre serveur SSH global de manière très sécurisée en utilisant l'authentification par clé et en désactivant complètement l'authentification par mot de passe sur votre serveur.

Est-ce pour moi?

Il est tentant de devenir laxiste en matière de sécurité personnelle. Si vous utilisez le serveur à des fins privées, vous pourriez penser que les gens ne connaissent tout simplement pas votre serveur et n'essaieront donc pas de le pirater — la sécurité par l'obscurité. Ce serait un très fausse hypothèse. Étant donné que (la plupart) le trafic SSH est transmis sur le port 22, les attaquants vérifient régulièrement la visibilité du port 22 sur des adresses IP aléatoires, suivi d'une attaque par force brute. C'est l'une des façons dont les botnets sont conçus pour être utilisés dans Attaques DDOS Qu'est-ce qu'une attaque DDoS? [MakeUseOf explique]Le terme DDoS résonne à chaque fois que le cyber-activisme fait son apparition en masse. Ce genre d'attaques fait la une des journaux internationaux pour de multiples raisons. Les problèmes qui déclenchent ces attaques DDoS sont souvent controversés ou très... Lire la suite .

Pour faire court: si vous diffusez votre serveur SSH sur Internet (c'est-à-dire en redirigeant le port 22), alors oui, c'est pour vous.

L'idée des connexions SSH basées sur des clés

Les connexions SSH basées sur des clés reposent sur l'idée de cryptographie à clé publique. Cela nous prendrait trop loin pour expliquer les subtilités, mais nous essaierons de brosser un tableau simple de ce qui se passe dans les coulisses.

Dans le processus ci-dessous, votre ordinateur client génère deux clés: une clé publique et une clé privée. L'idée générale est que vous pouvez chiffrer les données avec la clé publique, mais uniquement les déchiffrer avec la clé privée. Nous mettrons la clé publique sur le serveur et lui demanderons de chiffrer toutes les communications sortantes avec lui. Cela garantit que seuls les clients disposant de la clé privée peuvent déchiffrer et lire les données.

1. Installer OpenSSH

Tout d'abord, nous allons configurer un serveur SSH en utilisant OpenSSH. Si vous avez déjà un serveur SSH en cours d'exécution et que vous souhaitez simplement savoir comment configurer l'authentification par clé, vous pouvez ignorer cette étape. Utilisez votre gestionnaire de paquets préféré pour installer l'application serveur OpenSSH. Le moyen le plus simple peut encore être d'exécuter le apt-get commande depuis le Terminal.

sudo apt-get install openssh-server

Entrez votre mot de passe, confirmez et attendez une minute pour qu'il termine l'installation. Félicitations, vous avez maintenant un serveur SSH. (C'était facile!)

ubuntu-installer-openssh

Vous pouvez soit utiliser l'application telle quelle, soit modifier /etc/ssh/sshd_config pour le configurer. Exécutez le man sshd_config commande dans Terminal pour obtenir plus d'informations. Une autre excellente ressource pour en savoir plus sur OpenSSH est la page d'aide Ubuntu correspondante.

2. Générer des clés

Nous allons générer un jeu de clés. Exécutez les commandes suivantes (adaptées du OpenSSH/Clés page d'aide d'Ubuntu).

mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa

La première commande crée un répertoire caché « .ssh » dans votre dossier personnel, la deuxième commande modifie les autorisations d'accès du dossier tandis que la troisième commande génère en fait un ensemble de RSA clés. Il vous sera d'abord demandé un emplacement pour enregistrer les clés (laissez vide et appuyez sur Entrée pour enregistrer dans l'emplacement par défaut) et ensuite une phrase secrète.

génération-clé-rsa-mac

Cette phrase secrète crypte davantage la clé privée stockée sur votre ordinateur, ce qui vous donne essentiellement plus de temps pour sécuriser le serveur SSH si votre clé privée est volée. Assurez-vous de choisir une phrase secrète dont vous vous souviendrez, car vous devrez la saisir lorsque vous essayerez d'utiliser votre clé.

3. Transférer la clé publique

Ensuite, vous devrez transférer la clé publique que vous avez générée à l'étape précédente vers l'ordinateur serveur SSH. Si votre machine cliente exécute également Linux, cela peut être réalisé très facilement en exécutant la commande ci-dessous (en remplaçant et pour le nom d'utilisateur et l'adresse IP sur votre serveur SSH).

ssh-copie-id @

Si votre client ne prend pas en charge la commande ssh-copy-id, vous pouvez utiliser la commande ci-dessous à la place. C'est un peu plus compliqué, mais atteint essentiellement les mêmes résultats.

chat ~/.ssh/id_rsa.pub | ssh @ "mkdir ~/.ssh; chat >> ~/.ssh/authorized_keys"

Il vous sera demandé de saisir le mot de passe utilisateur pour le serveur SSH. Si les commandes s'exécutent sans erreur, votre clé publique aura été copiée sur le serveur.

4. Désactiver l'authentification par mot de passe

Notez que votre système n'est toujours pas plus sécurisé qu'après la première étape. Bien qu'au moins un client soit configuré pour utiliser l'authentification par clé, cela laisse toujours la possibilité à d'autres clients de se connecter avec un mot de passe. Pour finir, nous désactiverons complètement l'authentification par mot de passe. Après cette étape, seul les ordinateurs qui ont suivi le processus ci-dessus peuvent se connecter à votre serveur SSH.

Pour désactiver l'authentification par mot de passe, modifiez le /etc/ssh/sshd_config fichier dans votre éditeur préféré. L'un des moyens les plus simples de modifier un fichier restreint est, encore une fois, d'utiliser Terminal. (J'ai un faible pour nano, mais vous pouvez utiliser ce avec quoi vous êtes le plus à l'aise.)

sudo nano /etc/ssh/sshd_config

Environ 40 lignes à partir du bas du fichier, vous trouverez

#PasswordAuthentication oui

Supprimez le signe dièse (#) et modifiez le paramètre sur « non », comme ci-dessous.

Mot de passeAuthentification non

Le fichier final devrait ressembler à ceci :

sshd_config

Enregistrez le fichier en appuyant sur CTRL+X. Confirmez la modification et le nom du fichier, et vous avez presque terminé. Redémarrez simplement le serveur SSH pour l'exécuter avec ces nouveaux paramètres.

sudo redémarrer ssh

Vous remarquerez également que votre client cessera de demander la phrase secrète pour déchiffrer votre clé si l'authentification par mot de passe est désactivée sur le serveur. Maintenant que vous disposez d'un serveur SSH sécurisé, comment comptez-vous l'utiliser? En tant que serveur de fichiers sécurisé, shell distant ou pour transférer d'autres services via SSH? Faites-nous savoir dans la section commentaires ci-dessous!

Crédit image: Shutterstock

Je suis écrivain et étudiant en informatique de Belgique. Vous pouvez toujours me rendre service avec une bonne idée d'article, une recommandation de livre ou une idée de recette.