Ajouter un utilisateur sans mot de passe mais avec SSH et clé publique

33

Je veux ajouter un utilisateur à Red Hat Linux qui n'utilisera pas de mot de passe pour se connecter, mais utilisera à la place une clé publique pour ssh. Ce serait sur la ligne de commande.

user119776
la source
useradd --password-disable et adduser --password disable. J'ai examiné les options pour les deux et je ne vois pas la désactivation du mot de passe comme une option pour les deux.
user119776
Savez-vous comment configurer une connexion par clé ssh en général? Je pense que le compte n'a tout simplement pas besoin d'être verrouillé, ce qui impliquerait qu'un mot de passe est actif. Il peut s'agir d'un mot de passe long que personne ne connaît réellement.
Micah Yoder
J'ai la clé et je sais que je dois créer le dossier dans le répertoire de l'utilisateur et y coller la partie publique. Je peux essayer de cette façon, mais j'ai pensé que je devais aussi désactiver le mot de passe utilisateur.
user119776
Plutôt que de faire un autre post vous montrant comment ajouter un utilisateur, je suis d'accord avec Lambert. Vous devez vous concentrer spécifiquement sur la partie de cette tâche qui vous pose problème. Si vous ne savez même pas comment ajouter un utilisateur, vous devriez commencer petit et progresser. Je pense que vous n'avez qu'à créer l'utilisateur, ne définissez aucun mot de passe et mettez sa clé dans /home/username/.ssh/authorized_keys.
Baazigar

Réponses:

37

Commencez par créer un utilisateur:

useradd -m -d /home/username -s /bin/bash username

Créez une paire de clés à partir du client que vous utiliserez pour ssh:

ssh-keygen -t dsa

Copiez la clé publique /home/username/.ssh/id_dsa.pubsur l'hôte RedHat dans/home/username/.ssh/authorized_keys

Définissez les autorisations correctes sur les fichiers sur l'hôte RedHat:

chown -R username:username /home/username/.ssh
chmod 700 /home/username/.ssh
chmod 600 /home/username/.ssh/authorized_keys

Assurez-vous que l'authentification par clé publique est activée sur l'hôte RedHat:

grep  PubkeyAuthentication /etc/ssh/sshd_config
#should output:
PubkeyAuthentication yes

Sinon, changez cette directive en oui et redémarrez le sshdservice sur l'hôte RedHat.

Depuis le client, démarrez une sshconnexion:

ssh username@redhathost

Il doit chercher automatiquement la clé id_dsade ~/.ssh/. Vous pouvez également spécifier un fichier d'identité en utilisant:

ssh -i ~/.ssh/id_dsa username@redhathost
Lambert
la source
3
En fait, je n'ai pas oublié le verrouillage par mot de passe. Comme je ne l'ai tout simplement pas défini, le mot de passe de l'utilisateur nouvellement créé est automatiquement verrouillé.
Lambert
3
utiliser RSA au lieu de DSA
sg
vous vous rendez compte que la commande "ssh-keygen -t dsa" créera des clés pour l'utilisateur actuel, elle pourrait remplacer vos propres clés
yarun peut le
15

Sur Ubuntu, vous pouvez ajouter l'utilisateur avec:

adduser --disabled-password <username>

Créez ensuite un .ssh/authorized_keysfichier dans leur répertoire personnel avec leur clé publique.

Mitar
la source
7

Vous pouvez utiliser:

usermod --lock <username>

Depuis la page de manuel:

Verrouillez le mot de passe d'un utilisateur. Cela met un «!» devant le mot de passe crypté, désactivant efficacement le mot de passe. Vous ne pouvez pas utiliser cette option avec -p ou -U. Remarque: si vous souhaitez verrouiller le compte (non seulement l'accès avec un mot de passe), vous devez également définir la EXPIRE_DATE sur 1.

Paul Mitchell
la source