Connexion au serveur SSH: autorisation refusée, veuillez réessayer

9

J'essaie de me connecter à mon serveur ssh en utilisant un nom d'utilisateur et un mot de passe, mais j'obtiens cette erreur après avoir entré le mot de passe correct:

Permission denied, please try again.

Je peux cependant me connecter à l'aide d'une clé publique sur une autre machine, mais je n'ai PAS désactivé l'authentification par mot de passe standard. La seule chose que j'ai désactivée était les connexions root.

Voici mon fichier sshd_config:

# Fichier de configuration généré par package
# Voir la page de manuel sshd_config (5) pour plus de détails

# Quels ports, IP et protocoles que nous écoutons
Port 22
# Utilisez ces options pour restreindre les interfaces / protocoles auxquels sshd se liera
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocole 2
# HostKeys pour le protocole version 2
HostKey / etc / ssh / ssh_host_rsa_key
HostKey / etc / ssh / ssh_host_dsa_key
HostKey / etc / ssh / ssh_host_ecdsa_key
La séparation des privilèges est activée pour des raisons de sécurité
UsePrivilegeSeparation yes

# Durée de vie et taille de la clé de serveur éphémère version 1
KeyRegenerationInterval 3600
ServerKeyBits 768

# Journalisation
SyslogFacility AUTH
INFO LogLevel

# Authentification:
LoginGraceTime 120
PermitRootLogin non
StrictModes oui

RSAAuthentication oui
PubkeyAuthentication oui
#AuthorizedKeysFile% h / .ssh / authorized_keys

# Ne lisez pas les fichiers ~ / .rhosts et ~ / .shosts de l'utilisateur
IgnoreRhosts oui
# Pour que cela fonctionne, vous aurez également besoin de clés d'hôte dans / etc / ssh_known_hosts

RhostsRSAAuthentication no
# similaire pour la version 2 du protocole
HostbasedAuthentication no
# Ne commentez pas si vous ne faites pas confiance à ~ / .ssh / known_hosts pour RhostsRSAAuthentication
#IgnoreUserKnownHosts oui

# Pour activer les mots de passe vides, passez à oui (NON RECOMMANDÉ)
PermitEmptyPasswords non

# Passez à yes pour activer les mots de passe challenge-response (attention aux problèmes
# certains modules et threads PAM)
ChallengeResponseAuthentication non

# Passez à no pour désactiver les mots de passe en texte clair tunnellisés
PasswordAuthentication yes

# Options Kerberos 
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd oui
#KerberosTicketCleanup oui

# Options GSSAPI
#GSSAPIAuthentication no
#GSSAPICleanupCredentials oui

X11Forwarding oui
X11DisplayOffset 10
PrintMotd non
PrintLastLog oui
TCPKeepAlive oui
#UseLogin no

#MaxStartups 10:30:60 
#Banner /etc/issue.net

# Autoriser le client à transmettre des variables d'environnement locales
AcceptEnv LANG LC_ *

Sous-système sftp / usr / lib / openssh / sftp-server

# Définissez ce paramètre sur «oui» pour activer l'authentification PAM, le traitement des comptes,
# et traitement de session. Si cette option est activée, l'authentification PAM
# être autorisé via ChallengeResponseAuthentication et
# PasswordAuthentication. Selon votre configuration PAM,
# L'authentification PAM via ChallengeResponseAuthentication peut contourner
# le paramètre "PermitRootLogin without-password".
# Si vous voulez simplement que le compte PAM et les vérifications de session s'exécutent sans
# Authentification PAM, puis activez-la mais définissez PasswordAuthentication
# et ChallengeResponseAuthentication à «non».
UsePAM oui 
IgnoreUserKnownHosts non
PasswordAuthentication yes

J'ai ajouté les 2 dernières lignes dans une dernière tentative pour le faire fonctionner. (Je les ai sur mes autres vps, et ils y travaillent)

Voici la liste du répertoire ~ / .ssh / de mon utilisateur:

ls -la /home/skerit/.ssh
16 au total
drwx ------ 2 skerit skerit 4096 2011-06-25 15:11.
drwxr-xr-x 4 skerit skerit 4096 2011-07-07 21:05 ..
-rw-r - r-- 1 skerit skerit 1882 2011-06-25 15:15 authorized_keys
-rw-r - r-- 1 skerit skerit 884 2011-06-23 22:59 known_hosts 

Ceci est la sortie de / usr / sbin / sshd -d:

debug1: userauth-request for user skerit service ssh-connection method none
debug1: tentative 0 échecs 0
debug1: PAM: initialisation pour "skerit"
debug1: PAM: définition de PAM_RHOST sur "82.197.70.70"
debug1: PAM: définition de PAM_TTY sur "ssh"
debug1: userauth-request for user skerit service ssh-connection method publickey
debug1: tentative 1 échecs 0
debug1: teste si pkalg / pkblob sont acceptables
debug1: Vérification du fichier de liste noire /usr/share/ssh/blacklist.RSA-2048
debug1: Vérification du fichier de liste noire /etc/ssh/blacklist.RSA-2048
debug1: temporairement_use_uid: 1000/1000 (e = 0/0)
debug1: essayer le fichier de clé publique /home/skerit/.ssh/authorized_keys
debug1: fd 4 effacement O_NONBLOCK
debug1: restore_uid: 0/0
debug1: temporairement_use_uid: 1000/1000 (e = 0/0)
debug1: essai du fichier de clé publique /home/skerit/.ssh/authorized_keys2
debug1: impossible d'ouvrir les clés autorisées '/home/skerit/.ssh/authorized_keys2': aucun fichier ou répertoire de ce type
debug1: restore_uid: 0/0
Échec de Publickey pour Skerit à partir du port 82.197.70.70 57154 SSH2
debug1: userauth-request for user skerit service ssh-connection method password
debug1: tentative 2 échecs 1
debug1: PAM: échec de l'authentification par mot de passe pour skerit: échec de l'authentification
Échec du mot de passe pour skerit à partir du port 82.197.70.70 57154 ssh2 

J'ai ensuite essayé de me connecter au serveur ssh à partir du serveur ssh (localement) en utilisant le même nom d'utilisateur et mot de passe, et cela a fonctionné. C'était dans le fichier auth.log:

8 juillet 12:21:50 vpsnl1 sshd [27298]: debug1: impossible d'ouvrir le fichier de clé '/ etc / ssh / ssh_host_ecdsa_key': Aucun fichier ou répertoire de ce type
8 juillet 12:21:50 vpsnl1 sshd [27298]: erreur: impossible de charger la clé d'hôte: / etc / ssh / ssh_host_ecdsa_key
8 juillet 12:22:16 vpsnl1 sshd [27298]: pam_unix (sshd: auth): échec d'authentification; logname = uid = 0 euid = 0 tty = ssh ruser = rhost = 82.197.70.70 user =
skerit
8 juillet 12:23:50 vpsnl1 sshd [27439]: serveur écoutant sur le port 22 de 0.0.0.0.
8 juil 12:23:50 vpsnl1 sshd [27439]: serveur écoutant sur :: port 22.
8 juillet 12:24:07 vpsnl1 sshd [27458]: erreur: impossible de charger la clé d'hôte: / etc / ssh / ssh_host_ecdsa_key
8 juillet 12:24:14 vpsnl1 sshd [27458]: Mot de passe accepté pour skerit à partir du port 127.0.0.1 57667 ssh2
8 juillet 12:24:14 vpsnl1 sshd [27458]: pam_unix (sshd: session): session ouverte pour l'utilisateur skerit par (uid = 0)
8 juillet 12:24:25 vpsnl1 sshd [27471]: Déconnexion reçue de 127.0.0.1: 11: déconnecté par l'utilisateur
8 juillet 12:24:25 vpsnl1 sshd [27458]: pam_unix (sshd: session): session fermée pour l'utilisateur skerit 
skerit
la source
Pourriez-vous ajouter votre ssh-config?
Bart De Vos
Bon, fichier de configuration ajouté!
skerit
Que diriez-vous des autorisations sur .ssh? Pourriez-vous publier ls -la ~ / .ssh sur le serveur?
mkudlacek
Ok, j'ai ajouté la liste des fichiers de l'utilisateur sous lequel je tente de me connecter.
skerit
1
Authorized_keys ne devrait pas être lisible dans le monde, je pense, mais cela n'explique pas pourquoi vous ne pouvez pas vous connecter avec un mot de passe. Pouvez-vous faire su skeritdans votre compte?
mkudlacek

Réponses:

9

Êtes-vous certain que le compte d'utilisateur auquel vous tentez d'accéder est correctement configuré? Si vous vous connectez en tant que root sur le système, pouvez-vous vous connecter au sucompte utilisateur?

# su - username

Que voyez-vous dans vos journaux après une tentative de connexion échouée? Sur de nombreux systèmes, sshd se connectera à quelque chose /var/log/secureou /var/log/auth.log. De plus, je note que vous avez PasswordAuthenticationactivé mais ChallengeResponseAuthenticationdésactivé. Voyez-vous le même comportement si vous activez ChallengeResponseAuthentication?

Voici quelques étapes de diagnostic générales à utiliser lorsque vous rencontrez des problèmes ssh:

  • Activez les diagnostics détaillés dans ssh:

    ssh -v host.example.com
    

    Cela entraînera la sortie par le client d'une variété de messages de diagnostic lors de la négociation de la connexion. Cela fournira souvent un indice du problème.

  • Exécutez le serveur en mode débogage.

    Sur votre serveur, arrêtez sshd, puis exécutez-le à partir de la ligne de commande comme ceci:

    /usr/sbin/sshd -d
    

    Cela produira une journalisation détaillée du débogage stderrqui contiendra très souvent des informations utiles.

Si aucun de ces éléments ne vous aide à comprendre ce qui se passe, ajouteriez-vous la sortie à votre question?

larsks
la source
Ok, j'ai ajouté la sortie. Fondamentalement: lorsque je fais une connexion à distance, il dit que le mot de passe n'est pas bon, lorsque j'essaye une connexion locale, il dit que le mot de passe est correct et me laisse entrer.
skerit
2
Il ÉTAIT le mot de passe. J'ai changé le mot de passe via une console Web (une application Java) et même si le mot de passe entré était IDENTIQUE par rapport à ce que j'ai tapé dans ma console de mastic, les valeurs ascii ont dû différer. Je l'ai changé en quelque chose de plus simple, connecté de la bonne manière via le mastic et l'ai changé à nouveau. Maintenant ça marche.
skerit
@skerit - avait probablement un problème d'encodage de caractères, alors - peut-être UTF8 vs ASCII?
warren
Heureux d'entendre que les choses fonctionnent!
larsks
J'ai eu le même problème que @skerit après avoir modifié le mot de passe à partir de la console Web de DigitalOcean.
Daniel