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:
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.