J'ai essayé d'utiliser l'authentification par clé publique sur mon nouveau serveur et je suis tombé sur ce problème.
$ ssh -v -i .ssh/server 192.168.1.100
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data .ssh/config
debug1: Applying options for *
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to 192.168.1.100 [192.168.1.100] port 22.
debug1: Connection established.
debug1: identity file .ssh/server type -1
debug1: identity file .ssh/server-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debian-1ubuntu3
debug1: match: OpenSSH_5.8p1 Debian-1ubuntu3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '192.168.1.100' is known and matches the RSA host key.
debug1: Found key in .ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: .ssh/server
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password
puis je dois entrer mon mot de passe pour me connecter.
Mais, si j'ai déjà une session connectée à ce serveur (qui est connecté par mot de passe), la connexion suivante utilise l'authentification par clé pour éviter la saisie du mot de passe.
S'il n'y a pas de connexion SSH déjà établie, je ne peux pas me connecter sans mot de passe d'entrée.
C'est vraiment bizarre pour moi, j'ai vérifié le MD5 /usr/sbin/sshd
entre le nouveau serveur et l'autre serveur normal, c'est pareil. Ensuite, je viens de copier le /etc/ssh/sshd_config
depuis l'autre serveur normal vers le nouveau serveur et j'ai couru service ssh restart
. Le problème existe toujours.
Comment suis-je censé résoudre ce problème?
J'ai corrigé mon propre cas de cette erreur en supprimant
id_rsa.pub
de .ssh.J'avais copié à
id_rsa
partir d'une autre machine et l' ai distribué à plusieurs clients factices. Par conséquent,id_rsa
etid_rsa.pub
étaient en fait des clés différentes qui empêchaient l'utilisation deid_rsa
tout à fait.Aucun message d'erreur ne l'indique clairement cependant. Je l'ai compris essentiellement par accident, en essayant de mettre les différentes machines dans un état identique.
la source
D'après ma découverte, la moindre autorisation du directeur de la maison cible est
750
. Si le bit du monde ne l'est pas0
, cela ne fonctionnera pas.Par exemple. pour le répertoire racine:
Vient ensuite
/root/.ssh
alors
/root/.ssh/authorized_keys
la source
Dans mon cas, les autorisations sur le répertoire personnel étaient
775
au lieu de0755
ou inférieures.Le chemin complet vers le fichier authorized_keys, c'est-à-dire
/home/user/.ssh/
doit être0755
ou inférieur.la source
Après beaucoup de soucis, j'ai obtenu la solution du problème:
Le répertoire personnel de l'utilisateur ne doit pas avoir d'autorisation
777
ou être accessible en écriture dans le monde. Si c'est le cas, la vérification de la clé SSH échouera et vous devrez mettre un mot de passe pour la connexion.la source
Assurez-vous simplement que le compte auquel vous essayez de ssh est un utilisateur avec un mot de passe sur le serveur distant. Je me suis juste cogné la tête contre le mur pendant une demi-heure avant de trouver cette réponse ici: /programming//a/14421105/758174
la source
Si
/etc/ssh/sshd_config
la ligne suivante n'est pas commentée, votre configuration SSH autorise uniquement une liste fixe d'utilisateurs à ssh dans le système et vous devez ajouter de nouveaux comptes à la liste:Tout autre utilisateur que ceux répertoriés ci-dessus essayant de se connecter via SSH recevrait ces messages d'erreur cryptiques:
la source
J'ai découvert qu'après avoir changé mon nom d'utilisateur et de groupe (mais pas les ID) dans
/etc/passwd
et/etc/group
, mais en oubliant de changer en/etc/shadow
conséquence, j'ai reçu le même message "Pas d'itinérance autorisée".la source