web-dev-qa-db-fra.com

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

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.

44
user119776

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 à partir de:

ssh-keygen -t dsa

Copiez la clé publique /home/username/.ssh/id_dsa.pub sur 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 service sshd sur l'hôte RedHat.

Depuis le client, démarrez une connexion ssh:

ssh username@redhathost

Il devrait rechercher automatiquement la clé id_dsa dans ~/.ssh/. Vous pouvez également spécifier un fichier d'identité en utilisant:

ssh -i ~/.ssh/id_dsa username@redhathost
47
Lambert

Sur Ubuntu, vous pouvez ajouter l'utilisateur avec:

adduser --disabled-password <username>

Créez ensuite .ssh/authorized_keys fichier dans leur répertoire personnel avec leur clé publique.

17
Mitar

Vous pouvez utiliser:

usermod --lock <username>

Depuis la page de manuel:

Verrouillez le mot de passe d'un utilisateur. Cela met un "!" en face du 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.

7
Paul Mitchell