Il existe 2 méthodes pour accéder au SSH, l'une par mot de passe et l'autre par clé. L'authentification basée sur la clé SSH vise à fournir un moyen sécurisé d'accéder à un serveur avec une clé privée et publique.
Dans ce guide, vous allez apprendre les manières suivantes de sécuriser votre machine Debian.
- Créer un nouvel utilisateur avec les privilèges sudo
- Désactiver l'authentification par mot de passe
- Générer des clés SSH
- Configurer la clé SSH pour l'utilisateur
- Désactiver l'invite de mot de passe lors de l'utilisation de sudo
Étape 1 :Créer un nouvel utilisateur
Vous pouvez ignorer cette étape si vous avez déjà créé l'utilisateur.
Créez un nouvel utilisateur avec un mot de passe désactivé à l'aide de la commande suivante.
sudo adduser username --disabled-password
Suivez les invites et confirmez avec Y
, qui crée l'utilisateur avec le répertoire personnel de l'utilisateur dans /home/username
.
Accorder l'accès sudo à un nouvel utilisateur
Ajoutez le nouvel utilisateur au groupe sudo afin que l'utilisateur ait des privilèges d'administrateur pour exécuter des commandes.
sudo usermod -aG sudo username
Vous avez maintenant un nouvel utilisateur avec les droits sudo et le mot de passe désactivés.
Étape 2 :Désactiver l'authentification par mot de passe pour l'utilisateur
Modifiez le /etc/ssh/sshd_config
fichier pour configurer l'authentification.
sudo nano /etc/ssh/sshd_config
Ajoutez ce qui suit au dernier.
Match User username PasswordAuthentication no
Enregistrez le fichier et redémarrez SSH.
sudo systemctl restart ssh
Maintenant, l'utilisateur ne peut pas se connecter avec un mot de passe.
Étape 3 :Générer une clé SSH
Connectez-vous en tant qu'utilisateur que vous avez créé ci-dessus.
sudo su username
Créer un nouveau .ssh
répertoire pour contenir les clés ssh et y naviguer.
N'utilisez pas sudo ici.
mkdir .ssh cd .ssh
Créer des clés SSH.
ssh-keygen -m PEM -t rsa -b 4096 -C "your_email"
Ici, j'ai utilisé PEM
format pour générer une clé basée sur RSA. Si le -m PEM
est supprimé, il peut générer une clé OpenSSH.
Lorsque vous y êtes invité, indiquez le nom de la clé.
Ignorez la phrase secrète et terminez la configuration.
Vous devriez maintenant avoir 2 fichiers dans votre répertoire .ssh.
filename.pub filename
Le nom de fichier.pub est votre clé publique et le nom de fichier est votre clé privée.
Étape 4 :Configurez la clé SSH pour l'accès SSH.
Pour autoriser la connexion SSH, vous devez ajouter la clé publique au authorized_keys
fichier.
cat filename.pub >> authorized_keys
Cette commande créera un fichier nommé authorized_keys
et ajoutez-y le contenu de la clé publique.
Copiez le contenu de la clé privée, vous pouvez vous authentifier auprès du serveur à l'aide de celle-ci.
cat filename
Cette commande affiche le contenu de votre clé privée. Enregistrez-le pour l'authentification.
Étape 5 :Désactiver l'invite de mot de passe lors de l'utilisation de sudo
Par défaut, lorsque vous exécutez des commandes basées sur sudo avec un autre utilisateur, le système vous invite à entrer le mot de passe de l'utilisateur.
Comme nous n'utilisons pas de mot de passe, nous devons le désactiver.
Quittez le shell utilisateur et revenez à votre shell racine.
Exécutez la commande pour entrer visudo
.
sudo visudo
Ajoutez ce qui suit au dernier.
username ALL=(ALL) NOPASSWD: ALL
Enregistrez le fichier et quittez.
C'est ça. Vous avez maintenant un utilisateur qui ne peut se connecter qu'à l'aide de clés SSH.