J'ai installé le .ssh / authorized_keys et je peux me connecter avec le nouvel "utilisateur" en utilisant la clé pub / privée ... J'ai également ajouté "user" à la liste des sudoers ... le problème que j'ai maintenant c'est quand J'essaie d'exécuter une commande sudo, quelque chose de simple comme:
$ sudo cd /root
il me demandera mon mot de passe, que j'entre, mais cela ne fonctionne pas (j'utilise le mot de passe de clé privée que j'ai défini)
De plus, j'ai désactivé le mot de passe de l'utilisateur à l'aide de
$ passwd -l user
Qu'est-ce que je rate?
Quelque part mes premières remarques sont mal comprises ...
J'essaie de durcir mon système ... le but ultime est d'utiliser des clés pub / privées pour effectuer des connexions par opposition à une simple authentification par mot de passe. J'ai compris comment configurer tout cela via le fichier authorized_keys.
De plus, je vais finalement empêcher les connexions au serveur via le compte root. Mais avant de faire cela, j'ai besoin de sudo pour travailler pour un deuxième utilisateur (l'utilisateur avec lequel je serai connecté au système avec tout le temps).
Pour ce deuxième utilisateur, je veux empêcher les connexions par mot de passe régulières et ne forcer que les connexions pub / clé privée, si je ne verrouille pas l'utilisateur via "passwd -l user ... alors si je n'utilise pas de clé, je peux toujours entrer dans le serveur avec un mot de passe normal.
Mais plus important encore, je dois faire fonctionner sudo avec une configuration pub / clé privée avec un utilisateur dont le mot de passe a été désactivé.
Edit: OK, je pense que je l'ai (la solution):
1) J'ai ajusté / etc / ssh / sshd_config et défini PasswordAuthentication no
Cela empêchera les connexions de mot de passe ssh (assurez-vous d'avoir une configuration de clé publique / privée fonctionnelle avant de faire cela
2) J'ai ajusté la liste des sudoers visudo
et ajouté
root ALL=(ALL) ALL
dimas ALL=(ALL) NOPASSWD: ALL
3) root est le seul compte utilisateur qui aura un mot de passe, je teste avec deux comptes utilisateur "dimas" et "sherry" qui n'ont pas de mot de passe (les mots de passe sont vides, passwd -d user
)
Ce qui précède empêche essentiellement tout le monde de se connecter au système avec des mots de passe (une clé publique / privée doit être configurée).
De plus, les utilisateurs de la liste sudoers ont des capacités d'administrateur. Ils peuvent également su
accéder à différents comptes. Donc, fondamentalement, "dimas" peut sudo su sherry
, cependant "dimas ne peut PAS faire su sherry
. De même, tout utilisateur NON dans la liste sudoers ne peut PAS faire su user
ou sudo su user
.
REMARQUE Ce qui précède fonctionne mais est considéré comme une mauvaise sécurité. Tout script capable d'accéder au code en tant qu'utilisateur "dimas" ou "sherry" pourra exécuter sudo pour obtenir un accès root. Un bogue dans ssh qui permet aux utilisateurs distants de se connecter malgré les paramètres, une exécution de code à distance dans quelque chose comme Firefox, ou toute autre faille qui permet à du code indésirable de s'exécuter car l'utilisateur pourra désormais s'exécuter en tant que root. Sudo devrait toujours exiger un mot de passe ou vous pouvez aussi vous connecter en tant que root au lieu d'un autre utilisateur.