La phrase secrète qui peut être définie sur la clé privée n'est pas liée au serveur SSH ou à la connexion à celui-ci. La définition d'une phrase secrète pour la clé privée n'est qu'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 un tiers en cas de vol de la clé privée.
Malheureusement, vous ne pouvez pas forcer les utilisateurs à sécuriser leurs clés privées avec des mots de passe. Parfois, des clés privées non protégées sont nécessaires pour automatiser l'accès au serveur SSH distant. Une bonne habitude que je recommande fortement dans de tels cas est de conseiller aux utilisateurs de hacher le fichier known_hosts (stocké dans ~ / .ssh / known_hosts ), qui conserve les informations sur les hôtes distants auxquels l'utilisateur se connecte, en utilisant la commande suivante:
ssh-keygen -H -f ~/.ssh/known_hosts
De cette façon, même si un tiers accédait à une clé privée non protégée, il serait extrêmement difficile de savoir pour quels hôtes distants cette clé est valide. Bien sûr, l'effacement de l'historique du shell est obligatoire pour que cette technique ait une valeur quelconque.
En outre, une autre chose que vous devez toujours garder à l'esprit est de ne pas autoriser root à se connecter à distance en ajoutant les éléments suivants dans la configuration de votre serveur SSH (sshd_config):
PermitRootLogin no
D'un autre côté, si vous souhaitez empêcher les utilisateurs d'utiliser des clés pour s'authentifier, mais à la place utiliser des mots de passe, vous devez ajouter ce qui suit à votre sshd_config :
PasswordAuthentication yes
PubkeyAuthentication no
Une atténuation serait d'utiliser le plug-in du module PAM de l'authentificateur Google. Habituellement disponible dans les packages officiels.
Cela rendra 2FA disponible via un code à 6 chiffres sur votre smartphone.
Instructions ici: Comment configurer l'authentification multifacteur pour SSH sur Ubuntu 16.04
la source
SIMPLE, vous étendez simplement le protocole SSH afin que le client SSH ou l'agent SSH signale / définit un indicateur pour dire si la clé privée d'origine a été chiffrée ou non (peut-être que le côté serveur peut même poser une requête) - puisque le côté client a une visibilité de la clé privée et demande même déjà la phrase secrète lorsque la clé est chiffrée.
la source