10 votes

Renforcer les mots de passe des clés SSH ?

J'envisage de supprimer les connexions par mot de passe pour SSH. Cependant, je ne veux pas autoriser les clés ssh sans mot de passe, car ce serait encore pire.

Comment puis-je m'assurer que seules les clés SSH qui ont un mot de passe peuvent se connecter ?

Si cela n'est pas possible, existe-t-il des alternatives, comme la gestion centralisée de la génération des clés SSH, et l'interdiction pour les utilisateurs de générer et/ou d'utiliser leurs propres clés ? Quelque chose comme PKI, je suppose.

23voto

La phrase de passe qui peut être définie sur la clé privée est la suivante sans rapport avec le serveur SSH ou le lien avec elle. Définir une phrase de passe pour la clé privée est simplement une mesure de sécurité que le propriétaire de la clé peut prendre afin d'empêcher l'accès à son Shell distant par une tierce partie au cas où la clé privée serait volée.

Malheureusement, vous ne pouvez pas obliger les utilisateurs à sécuriser leurs clés privées avec des phrases de passe. Parfois, des clés privées non protégées sont nécessaires afin d'automatiser l'accès au serveur SSH distant. Une bonne habitude à recommander vivement dièse le site Hôtes connus (stocké à ~/.ssh/known_hosts ), qui conserve des informations sur les hôtes distants auxquels l'utilisateur se connecte, en utilisant la commande suivante :

ssh-keygen -H -f ~/.ssh/known_hosts

Ainsi, même si un tiers avait accès à une clé privée non protégée, il serait extrêmement difficile de savoir pour quels hôtes distants cette clé est valable. Bien entendu, l'effacement de l'historique Shell est obligatoire pour que cette technique ait une quelconque valeur.

En outre, une autre chose que vous devez toujours garder à l'esprit est de ne pas autoriser root à se connecter à distance en ajoutant ce qui suit dans la configuration de votre serveur SSH (sshd_config) :

PermitRootLogin no

D'autre part, si vous voulez empêcher les utilisateurs d'utiliser des clés pour s'authentifier, mais plutôt des mots de passe, vous devez ajouter ce qui suit à votre fichier sshd_config :

PasswordAuthentication yes
PubkeyAuthentication no

8voto

Kenzie Points 604

Ce n'est pas possible.

Les utilisateurs peuvent faire n'importe quoi avec leurs fichiers de clés, les convertir sans mot de passe même si vous les avez générés par exemple.

3voto

Ryan Sampson Points 2898

Tu ne peux pas. Une fois que l'utilisateur a les données clés en sa possession, vous ne pouvez pas l'empêcher de supprimer la phrase de passe. Vous devrez chercher d'autres moyens d'effectuer votre authentification.

2voto

P T Points 21

Pour obtenir le contrôle des clés utilisateur, toutes les clés doivent être déplacées dans un répertoire appartenant à la racine, où les clés sont lisibles mais non modifiables par l'utilisateur final. Ceci peut être fait en mettant à jour sshd_config.

Une fois que les fichiers de clés sont dans un emplacement contrôlé, vous aurez besoin d'une interface de gestion pour la mise à jour (et l'application de la politique de mot de passe) suivie de la distribution des clés aux hôtes requis. Vous pouvez en créer une vous-même ou vous renseigner sur des produits tels que FoxT / Tectia, etc.

1voto

Sciolist Points 1481

Une atténuation serait d'utiliser le plugin module PAM de google authenticator. Il est généralement disponible dans les paquets officiels.

Cela rendra le 2FA disponible grâce à un code à 6 chiffres sur votre smartphone.

Instructions ici : Comment configurer l'authentification multi-facteurs pour SSH sur Ubuntu 16.04

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X