Description du problème
Échec de la connexion distante : Lorsque vous vous connectez à une instance Linux à l'aide d'un client Secure Shell (SSH) tiers, tel que PuTTY, XShell ou SecureCRT, la connexion échoue et affiche l'erreur
Access deniedouPermission denied, please try again..Journal de sécurité du système : Le fichier journal du système
/var/log/securecontient des messages tels quenot allowed because.
Cause
Par défaut, le service SSH d'une instance Linux permet à tout utilisateur du système de se connecter avec ses identifiants (mot de passe ou clé). Si des politiques de restriction de connexion sont activées dans le fichier de configuration du service SSH /etc/ssh/sshd_config, une configuration incorrecte peut empêcher certains utilisateurs de se connecter à l'instance.
AllowUsers : liste d'autorisation d'utilisateurs. Seuls les utilisateurs figurant dans la liste peuvent se connecter.
DenyUsers : liste de blocage d'utilisateurs. La connexion est refusée aux utilisateurs figurant dans la liste.
AllowGroups : liste d'autorisation de groupes d'utilisateurs. Seuls les utilisateurs appartenant aux groupes répertoriés peuvent se connecter.
DenyGroups : liste de blocage de groupes d'utilisateurs. La connexion est refusée aux utilisateurs appartenant aux groupes répertoriés.
Les politiques de refus (Deny*) sont prioritaires sur les politiques d'autorisation (Allow*). Si un utilisateur correspond à la fois à une politique d'autorisation et à une politique de refus, l'accès lui est refusé.
Solution
-
Connectez-vous à l'instance ECS via VNC.
Accédez à Console ECS - Instances. Dans le coin supérieur gauche, sélectionnez la région et le groupe de ressources de l'instance cible.
Accédez à la page de détails de l'instance cible. Cliquez sur Connect et sélectionnez VNC. Saisissez vos identifiants pour vous connecter à l'instance ECS.
-
Vérifiez et modifiez le fichier de configuration SSH.
-
Sauvegardez le fichier de configuration afin de pouvoir le restaurer en cas d'erreur.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak -
Localisez et ajustez les politiques de contrôle d'accès.
sudo vi /etc/ssh/sshd_configModifiez le fichier selon l'une des méthodes suivantes :
-
Méthode 1 : Mettre en commentaire toutes les règles de restriction
Pour supprimer les restrictions de connexion, mettez en commentaire les paramètres
AllowUsers,DenyUsers,AllowGroupsetDenyGroupsen ajoutant le symbole#au début de chaque ligne. Tous les utilisateurs du système pourront alors se connecter.# AllowUsers userA userB # DenyUsers userC -
Méthode 2 : Corriger les règles de restriction
Pour éviter toute ambiguïté dans vos politiques, n'utilisez pas simultanément des règles de liste d'autorisation (
Allow*) et de liste de blocage (Deny*).-
Utiliser une politique de liste d'autorisation (lorsque seuls quelques utilisateurs spécifiques sont autorisés à se connecter)
Conservez uniquement le paramètre
AllowUsersouAllowGroups. Ajoutez à la liste les utilisateurs ou groupes d'utilisateurs qui doivent avoir accès. Ensuite, mettez en commentaire ou supprimez tous les paramètresDeny*.AllowUsers userA userB newUser # DenyUsers userCCet exemple autorise uniquement la connexion des utilisateurs
userA,userBetnewUser, et refuse l'accès à tous les autres utilisateurs. -
Utiliser une politique de liste de blocage (lorsque seuls quelques utilisateurs spécifiques doivent être bloqués)
Conservez uniquement le paramètre
DenyUsersouDenyGroups. Ajoutez à la liste les utilisateurs ou groupes d'utilisateurs que vous souhaitez bloquer. Ensuite, mettez en commentaire ou supprimez tous les paramètresAllow*.# AllowUsers userA userB DenyUsers userC userDCet exemple refuse l'accès aux utilisateurs
userCetuserD, tout en autorisant la connexion de tous les autres utilisateurs.
-
-
-
-
Redémarrez le service SSH pour appliquer la nouvelle configuration.
sudo systemctl restart sshd.serviceSi le service ne parvient pas à démarrer, exécutez la commande
cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_configpour restaurer le fichier de configuration à partir de la sauvegarde. Tentez à nouveau de vous connecter à l'instance avec votre client SSH tiers pour confirmer la résolution du problème.