web-dev-qa-db-fra.com

Comment refuser une connexion SSH racine + requérir une clé SSH pour l'utilisateur?

Après avoir lu cette question similaire , je ne vois pas comment exiger des clés SSH pour user, tout en refusant l'accès SSH à root (clé ou mot de passe). J'utiliserai Sudo après avoir ouvert une session en tant qu'utilisateur si je dois être root.

Je sais comment exiger des clés SSH:

PermitRootLogin without-password

Je sais comment désactiver l'utilisateur 'root' de la connexion:

PermitRootLogin no

Je sais comment ajouter un utilisateur à la liste blanche:

AllowUsers user

Je ne sais pas comment mettre tout cela ensemble (ou si c'est même nécessaire? - La clé SSH peut suffire). Je résoudrais normalement une réponse comme celle-ci par essais et erreurs, mais j'ai peur de me verrouiller hors de ce serveur ...

5
Tom Brossman

Si vous souhaitez interdire les connexions par mot de passe, définissez simplement PasswordAuthentication no dans le sshd_conf du serveur.

Je ne me souviens pas exactement, mais je pense au moins qu'aucune connexion root n'est la valeur par défaut.

Si vous tentez de vous connecter en tant qu’utilisateur du système qui n’a pas de clé publique dans son ~/.ssh/authorized_keys, il vous demandera le mot de passe, qu’un mot de passe soit défini ou non, ou qu’un shell est disponible, si aucun mot de passe n'a été connecté. été désactivé.

Je pense que ce que vous voulez, c'est simplement:

 PasswordAuthentication no 
 PermitRootLogin no 

Cela interdira toute connexion root, avec la clé ssh ou le mot de passe, et obligera les utilisateurs à se connecter avec une clé valide, comme indiqué en ayant la clé publique dans le fichier ~/.ssh/authorized_keys de cet utilisateur.

7
dobey