web-dev-qa-db-fra.com

SSH vs / et mot de passe

J'ai un VPS que je me connecte à root via des clés SSH.

Maintenant, j'ai créé un autre utilisateur user1 avec la commande adduser et je lui ai attribué un mot de passe. Cependant, chaque fois que j'essaie de me connecter au serveur via winSCP à l'aide de user1, j'obtiens toujours le message d'erreur indiquant que je dois entrer la clé privée et que je ne parviens pas à me connecter à l'aide du mot de passe de l'utilisateur 1.

Mes questions sont les suivantes:

  • Un utilisateur peut-il avoir la possibilité de se connecter via les 2 méthodes? C'est-à-dire, en utilisant les clés SSH et un mot de passe?
  • Si SSH est utilisé, tous les utilisateurs du système sont-ils tenus d'utiliser les clés pour se connecter?
3
tony9099

Vous pouvez ajouter des règles pour cet utilisateur particulier dans le fichier /etc/ssh/sshd_config, comme dans l'exemple présenté à la fin de cette réponse. Mais avant , soyez prévenu, autoriser la connexion par mot de passe via SSH est quelque peu dangereux en termes de tentatives de force brute possibles sur le serveur. Le moyen le plus sûr consiste donc à créer une autre clé SSH sur le VPS ou une autre machine Linux avec la ligne suivante. Le mieux est de passer à utilisateur1 sur cette machine avant de commencer à utiliser les commandes suivantes avec su - user1. (Remarque: vous devriez passer dans le répertoire où vous voulez que la paire de clés soit créée car le -f a du mal à trouver les chemins):

ssh-keygen -t rsa -C "[email protected]" -f user1_key

L'utilisateur peut modifier lui-même la phrase secrète ultérieurement en copiant sa paire de clés pendant une courte période sur le SMV ou sur une autre machine Linux avec:

ssh-keygen -p -f user1_key

Donnez ensuite la clé privée (user1_key) à l'utilisateur1 et placez la clé publique (user1_key.pub) dans le répertoire de base des utilisateurs sous ~/.ssh/authorized_keys sur le SMV, puis changez le propriétaire en utilisateur1 ou su - user1 avant de le faire pour empêcher toute erreur de propriété non souhaitée dans le répertoire de base de l'utilisateur1.

mkdir -p /home/user1/.ssh
cat user1_key.pub >> /home/user1/.ssh/authorized_keys
# The next line is only needed if you have done the two above as 'root'
chown -Rv user1:user1 /home/user1/.ssh

Le processus de création d'une paire de clés peut également être effectué sous Windows à l'aide de WinScp, voir ici pour référence. Vous voudrez peut-être ensuite vous assurer que les clés publique et privée sont correctement définies: 0600 pour la clé privée de l'utilisateur et 0644 pour la clé publique de l'utilisateur. (Remarque: la copie de la clé sur une clé USB ou un lecteur formaté Windows laisse la clé perdre ses autorisations définies. Vous devez donc vérifier.

Si vous souhaitez toutefois que cet utilisateur puisse se connecter via un mot de passe, vous pouvez modifier la ligne suivante dans /etc/ssh/sshd_config:

AllowUsers mainuser user1

Et ajoutez ce qui suit à la fin:

Pour activer le mot de passe uniquement:

Match User user1
    PubkeyAuthentication no
    PasswordAuthentication yes

Pour activer à la fois:

Match User user1
    PubkeyAuthentication yes
    PasswordAuthentication yes

Pour activer ssh uniquement, vous pouvez supprimer cette partie ou la définir sur:

Match User user1
    PubkeyAuthentication yes
    PasswordAuthentication no

Plus de lectures qui ne concernent pas nécessairement la question, mais plutôt SSH en général, vous pouvez trouver ici , sachez que certaines informations sont spécifiées pour l'océan numérique mais restent utiles. Voir également page de manuel pour la commande ssh-keygen) et page de manuel pour la commande ssh .

Merci à @ Eliah-Kagan pour la relecture et la suggestion de corrections et d’ajouts.

4
Videonauth