2 votes

Clé privée et publique SSH pour plus d'utilisateurs, utilisateurs root et sudo (VP)

Je voulais demander comment je peux utiliser la même authentification (clé privée et publique SSH) pour l'utilisateur root et pour un autre utilisateur (utilisateur sudo) sur un VPS.

Ou, en termes de sécurité, il est préférable de faire le processus de création et de chargement de la clé (j'utilise puttygen) directement en tant qu'utilisateur sudo ?

En désactivant ensuite le login root et sans appliquer l'authentification par clé sur root ? Est-ce sûr ?

Merci beaucoup d'avance pour votre aide, je commence à devenir fou :(

1voto

Giuseppe R Points 1325

Beaucoup de questions différentes (distinctes) ici...

Considérations pratiques

Pour utiliser la même paire de clés pour plusieurs utilisateurs, vous pouvez simplement copier le contenu (une partie ou la totalité) du fichier ~/.ssh/authorized_keys dans le dossier d'un autre utilisateur ${HOME}/.ssh/authorized_keys fichier. Vous devez vous assurer que les permissions sur le fichier .ssh et authorized_keys sont suffisamment serrés, sinon le serveur SSH risque de se tromper et de refuser de le traiter. Une idée : seul l'utilisateur actuel a besoin d'accéder à ces fichiers, et il n'a pas besoin de pouvoir y écrire ou de les exécuter, donc une permission de 400 pour le fichier et de 500 pour le répertoire (il faut l'exécuter pour pouvoir lister son contenu) devrait convenir. Voir aquí pour des informations sur les masques de permission si vous n'êtes pas familier.

Considérations de sécurité

Tout d'abord, c'est toujours une bonne idée de désactiver complètement la connexion root via SSH, et de définir un mot de passe root séparé (sécurisé) sur la boîte. sudo est à peu près le même niveau de sécurité que su si vos utilisateurs sudoers ont des mots de passe sécurisés ; sinon, ce n'est pas le cas.

Si vous avez souvent besoin de l'accès root, vous devriez chercher des moyens de donner des autorisations ciblées et spécifiques aux utilisateurs pour satisfaire les cas d'utilisation les plus courants du serveur. Cela réduira le besoin de se connecter en tant que root, ce qui représente toujours un risque élevé en raison des autorisations très ouvertes.

Pour renforcer davantage votre serveur SSH, vous devriez :

  • Changez son port, qui est par défaut de 22, en un numéro à 5 chiffres (inférieur à 65536, car le numéro de port est une valeur de 16 bits).
  • Désactiver la connexion SSH par mot de passe pour todo utilisateurs (pas seulement root)
  • Utilisez des paires de clés fortes avec des clés privées de 2048 ou 4096 bits. Utilisez toujours le RSA, et non les algues plus faibles comme le DSA.
  • Définissez des mots de passe forts pour tous les sudoers ainsi que pour root.

La question de savoir s'il faut réutiliser la même paire de clés disparaît si vous désactivez le login root. Si vous avez besoin de plusieurs utilisateurs réguliers, et que vous êtes le seul être humain qui se connectera au serveur, je ne vois pas d'inconvénient à réutiliser la même paire de clés en copiant le fichier authorized_keys. Si vous avez plusieurs locataires sur le serveur, chaque personne doit avoir sa propre paire de clés.

0voto

mtak Points 14830

Pour obtenir l'authentification de plusieurs utilisateurs, il suffit d'ajouter la clé publique SSH à la fois dans le dossier de l'utilisateur normal et dans le dossier de l'utilisateur final. ~/.ssh/authorized_keys et au fichier ~/.ssh/authorized_keys fichier. Vous pouvez ensuite sélectionner le compte auquel vous voulez vous connecter en choisissant le nom d'utilisateur dans votre programme client.

Auparavant, la meilleure pratique consistait à désactiver complètement la connexion de l'utilisateur root et à toujours utiliser un utilisateur normal pour se connecter et utiliser les services de l'entreprise. sudo o su . Cependant, avec l'authentification par clé publique, le risque que quelqu'un force brutalement votre clé est minime. Si vous ne définissez pas de mot de passe pour l'utilisateur root, beaucoup de gens diront qu'il est possible de se connecter en tant que root. Si vous voulez une couche de sécurité supplémentaire, désactivez la connexion root, définissez un mot de passe pour un utilisateur normal (par ex. sudo vous le demande lorsque vous l'utilisez) et utiliser l'authentification par clé publique pour la connexion de l'utilisateur normal.

0voto

nelsond Points 43

Merci beaucoup ! Donc, j'ai :

  • Création de clés publiques et privées avec PuttyGen (SSH-2 RSA, 4096 bits et ajout d'une phrase de passe) ;
  • Téléchargement de la clé publique sur le serveur (avant pour l'utilisateur sudo et ensuite pour root) ;
  • Numéro modifié du port ;
  • PermitRootLogin non, PubkeyAuthentication oui, PasswordAuthentication non.

De cette façon :

  • Si j'essaie de me connecter en tant que root ou utilisateur sudo et que je n'ai pas de clé privée sur Putty, j'obtiens "Disconnected : No supported authentication methods available (server sent : publickey)", sans demande de phrase de passe ;
  • Si j'essaie de me connecter en tant que root + clé privée = il demande la phrase de passe mais ensuite l'erreur "Server refused public-key signature despite accepting key" et "Disconnected" ;
  • Si j'essaie avec sudo user + key private + passphrase correcte = je peux me connecter.

Maintenant, l'accès à SSH devrait être sûr à 99%, non ?

Merci beaucoup.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X