J'essaye de ssh dans un serveur CentOS sur lequel je n'ai aucun contrôle .. l'administrateur a ajouté ma clé publique au serveur et insiste sur le fait que la faute réside en moi mais je ne peux pas comprendre ce qui ne va pas.
Config .ssh:
tim@tim-UX31A:~$ cat ~/.ssh/config
User root
PasswordAuthentication no
IdentityFile ~/.ssh/id_rsa
Autorisation sur mes fichiers clés:
tim@tim-UX31A:~$ ls -l ~/.ssh/id_rsa*
-rw------- 1 tim tim 3326 Okt 20 17:28 /home/tim/.ssh/id_rsa
-rw-r--r-- 1 tim tim 746 Okt 20 17:28 /home/tim/.ssh/id_rsa.pub
Journal de connexion dont je ne peux pas comprendre le sens:
tim@tim-UX31A:~$ ssh -vvv [email protected]
OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /home/tim/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "10.0.12.28" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 10.0.12.28 [10.0.12.28] port 22.
debug1: Connection established.
debug1: identity file /home/tim/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/tim/.ssh/id_rsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1
debug1: match: OpenSSH_6.6.1 pat OpenSSH_6.6.1* compat 0x04000000
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to 10.0.12.28:22 as 'root'
debug3: hostkeys_foreach: reading file "/home/tim/.ssh/known_hosts"
debug3: record_hostkey: found key type ECDSA in file /home/tim/.ssh/known_hosts:3
debug3: load_hostkeys: loaded 1 keys from 10.0.12.28
debug3: order_hostkeyalgs: prefer hostkeyalgs: [email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent
debug3: receive packet: type 20
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,ext-info-c
debug2: host key algorithms: [email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected],[email protected],ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],aes128-cbc,aes192-cbc,aes256-cbc,3des-cbc
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],aes128-cbc,aes192-cbc,aes256-cbc,3des-cbc
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected],zlib
debug2: compression stoc: none,[email protected],zlib
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: host key algorithms: ssh-rsa,ecdsa-sha2-nistp256
debug2: ciphers ctos: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: ciphers stoc: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-sha1,[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: compression ctos: none,[email protected]
debug2: compression stoc: none,[email protected]
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug3: send packet: type 30
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug3: receive packet: type 31
debug1: Server host key:
debug3: hostkeys_foreach: reading file "/home/tim/.ssh/known_hosts"
debug3: record_hostkey: found key type ECDSA in file /home/tim/.ssh/known_hosts:3
debug3: load_hostkeys: loaded 1 keys from 10.0.12.28
debug1: Host '10.0.12.28' is known and matches the ECDSA host key.
debug1: Found key in /home/tim/.ssh/known_hosts:3
debug3: send packet: type 21
debug2: set_newkeys: mode 1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug2: set_newkeys: mode 0
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
debug2: key: /home/tim/.ssh/id_rsa (0x55ee619ab2b0), explicit, agent
debug2: key: /home/tim/.ssh/id_rsa (0x55ee619bcfa0), agent
debug2: key: tim@Tim-UX31A-Debian (0x55ee619b9370), agent
debug3: send packet: type 5
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-keyex,gssapi-with-mic,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive
debug3: authmethod_lookup gssapi-keyex
debug3: remaining preferred: gssapi-with-mic,publickey,keyboard-interactive
debug3: authmethod_is_enabled gssapi-keyex
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug2: we did not send a packet, disable method
debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure. Minor code may provide more information
No Kerberos credentials available
debug1: Unspecified GSS failure. Minor code may provide more information
No Kerberos credentials available
debug1: Unspecified GSS failure. Minor code may provide more information
debug1: Unspecified GSS failure. Minor code may provide more information
No Kerberos credentials available
debug2: we did not send a packet, disable method
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/tim/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Offering RSA public key: /home/tim/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Offering RSA public key: tim@Tim-UX31A-Debian
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
ssh [email protected]
comme le journal mentionne Kerberos, le serveur CentOS pourrait être intégré au domaine (AD, IPA, ...). Vous devez savoir quel utilisateur vous êtes censé utiliser. Demandez à l'administrateur. Par exemple, nous utilisons IPA afin de permettre aux utilisateurs de se connecter à certains serveurs avec leur compte de domaine IPA et leur paire de clés et, si nécessaire, ils peuvent sudo. Pas d'accès root :)Réponses:
Cela résout généralement la plupart des problèmes d'autorisation de clé autorisés SSH côté serveur , en supposant que quelqu'un n'a pas apporté de modifications supplémentaires aux autorisations.
Si votre administrateur a créé le fichier .ssh / ou .ssh / authorized_keys en tant que root (ce qui est le plus souvent le cas), alors le fichier appartenant à un autre utilisateur (même si root!) N'est pas autorisé.
Userify (clause de non-responsabilité: co-fondateur) procède automatiquement exactement de la même manière. Https://github.com/userify/shim/blob/master/shim.py#L285
la source
sudo chown $USER:$USER ~/ -R; sudo chmod o-rwx ~/ -R
économiser du temps de frappe, mais pourrait être plus difficile à comprendre pour un débutantJ'ai eu exactement le même problème sur deux serveurs: un Linux exécutant un tronçon Debian et sur un NAS (Synology DS715)
il s'est avéré que dans les deux cas, les autorisations du répertoire personnel sur le serveur étaient incorrectes
l'auth.log sur le serveur a été très utile
sous Linux, le bit d'écriture / groupe était activé (drwxrwxr - x), j'ai donc dû supprimer au moins le groupe d'écriture (chmod gw ~ /), puis cela a fonctionné
sur la Synology, pour une raison quelconque, il y avait un morceau collant
Je devais le changer avec
et je pourrais alors me connecter sans mot de passe
la source
chmod -t
... Je me suis retrouvé avec:admin@SYN:~$ ls -ald . .ssh .ssh/* drwxr-xr-x 6 admin users 4096 Jan 10 15:54 . drwx------ 2 admin users 4096 Jan 10 15:54 .ssh -rwx------ 1 admin users 401 Jan 10 15:54 .ssh/authorized_keys -rw------- 1 admin users 1679 Jan 10 15:49 .ssh/id_rsa -rwxr--r-- 1 admin users 396 Jan 10 15:49 .ssh/id_rsa.pub -rwx------ 1 admin users 396 Jan 10 10:04 .ssh/known_hosts
Lorsque vous utilisez CentOS 7, et je suis convaincu qu'il s'applique également aux autres systèmes d'exploitation Linux utilisant sshd. Avec l'accès root, vous pouvez en savoir plus sur les raisons de l'échec de l'authentification. Pour faire ça:
vi /etc/ssh/sshd_config
SyslogFacility AUTH LogLevel INFO
systemctl restart sshd
tail -l /var/log/messages
Par exemple, je rencontrais certains des mêmes problèmes que ceux mentionnés ci-dessus.
En utilisant ces étapes, j'ai pu confirmer que le problème était des autorisations sur le fichier authorized_keys. En définissant chmod sur 644 sur le fichier de clés autorisées de mon utilisateur, le problème a été résolu.
la source
Il semble que les autorisations sur votre
.ssh
dossier n'aient pas été copiées + collées correctement. Pourriez-vous l'ajouter à nouveau?Si le mode strict est activé, nous devons nous assurer que
.ssh
les autorisations sont correctes:.ssh/
devrait avoir des perms0700/rwx------
.ssh/*.pub
les fichiers doivent être644/rw-r--r--
.ssh/*
(autres fichiers en .ssh)0600/rw-------
À quoi les choses vous ressemblent-elles en termes de permission?
la source
Juste au cas où quelqu'un tomberait sur cette réponse - aucune des recommandations n'a fonctionné dans mon scénario. Au final, le problème était que j'avais créé un compte sans mot de passe. Une fois que j'ai défini le mot de passe en utilisant
usermod -p "my password" username
puis déverrouillé de force le compte,usermod -U username
tout était pêche.la source
J'ai eu un problème similaire , où la connexion ssh essaie la clé
~/.ssh/id_rsa
avant de s'arrêter de façon inattendue:Dans mon cas, cela était dû à un ancien fichier de clé publique qui traînait dans le
.ssh
répertoire:Le déplacement / la suppression
id_rsa.pub
du.ssh
répertoire a résolu le problème.D'après ce que je comprends: lorsqu'une clé publique est présente côté client, SSH 1st valide la clé privée par rapport à celle-ci. S'il échoue, il n'essaiera pas d'utiliser la clé privée pour se connecter à distance.
J'ai envoyé un e-mail à la liste de diffusion openssh: https://lists.mindrot.org/pipermail/openssh-unix-dev/2016-April/035048.html .
la source
openssh-8.0p1-5.fc30.x86_64
btw. J'ai eu la clé publique du serveur précédent avec le même nom que le nouveau qui traînefedora@(baloo).sshkey.pub
, qui va avecfedora@(baloo).sshkey
passé sur la ligne de commande avec l'-i
option. L'authentification a échoué avec la nouvelle clé de serveur trouvée dans la nouvellefedora@(baloo).sshkey
- une clé RSA.Nous avons rencontré ce problème. Les autorisations et la propriété des fichiers .ssh étaient toutes correctes. Dans / var / log / messages, nous avons trouvé:
SO, la solution pour les développeurs vm où nous ne nous soucions pas de la sécurité est de désactiver selinux. Modifiez / etc / sysconfig / selinux et changez SELINUX = désactivé et redémarrez.
la source
Juste au cas où cela sauverait aussi quelqu'un. J'essayais de copier une clé de ma machine Ubuntu 18.04 sur 2 serveurs CentOS 7. J'avais l'habitude
ssh-copy-id
de les transférer. L'un a fonctionné, l'autre non. J'ai donc parcouru toutes les autorisations de débogage et je n'ai rien trouvé. J'ai finalement récupéré le fichier/etc/ssh/sshd_config
sur les deux serveurs et je les ai parcourus ligne par ligne. Finalement, je l'ai trouvé, probablement quelque chose que quelqu'un a modifié bien avant de commencer.Une lecture:
AuthorizedKeysFile .ssh/authorized_keys
Et une autre lecture:,
AuthorizedKeysFile ~/.ssh/authorized_keys
qui était sur le serveur qui n'acceptait pas mes clés. Évidemment, en regardant entre les deux fichiers et en notant le commentaire qui indique que les modèles de recherche par défaut n'incluent pas le début,~/
je l'ai supprimé et redémarré sshd. Problème résolu.la source
A également rencontré ce problème. setroubleshoot ne semble pas fonctionner dans mon environnement, il n'y a donc pas d'enregistrement de ce type dans / var / log / messages. Désactiver SELinux n'était pas une option pour moi, donc je l'ai fait
Après cette connexion, la clé rsa a bien fonctionné.
la source
La raison dans mon cas était une option définie
AuthorizedKeysFile
dans le fichier/etc/ssh/sshd_config
. Il était défini sur le/home/webmaster/.ssh/authorized_keys
répertoire personnel d'un autre utilisateur ( ), donc l'utilisateur auquel j'essayais de me connecter n'avait pas accès à ce fichier / répertoire.Après l'avoir changé et redémarré ssh-server (
service ssh restart
), tout est revenu à la normale. Je peux me connecter avec ma clé privée maintenant.la source
Dans notre cas, les problèmes étaient liés au fait que nos règles de pare-feu et de NAT n'étaient pas correctement configurées.
le port 22, était dirigé vers le serveur incorrect où nos clés et notre utilisateur n'étaient pas reconnus.
Si quelqu'un arrive à ce point. tcpdump et telnet peuvent être vos amis
Vous remarquerez que ces deux serveurs ont des versions openssh différentes. Cela m'a aidé à repérer le problème assez rapidement. Si vos hôtes utilisent les mêmes versions ssh, vous devrez essayer de faire une trace compressée sur la destination pour voir si le trafic arrive réellement à la destination.
Ssh peut générer beaucoup de trafic, ce qui rend tcpdump difficile à trouver ce que vous recherchez.
Cela m'a aidé
Essayez de telnet à partir d'un 3 serveur différent et non de votre ordinateur actuel @ [mylocalip]. Vous voulez voir quel trafic atteint réellement votre serveur.
la source
Un journal des erreurs côté client se terminant comme ceci:
peut être provoqué par une restriction côté serveur (distante) sur la connexion root lorsque le fichier de configuration sshd contient:
La suggestion de JonCav pour activer la journalisation a été utile pour déboguer un tel problème. Bien que le débogage côté client ait été remarquablement inutile, le placement des éléments suivants dans le fichier sshd_config du serveur sshd :
a fini par produire des messages de journal utiles:
Dans le cas où seule la connexion root échoue et à condition que l'utilisation de l'authentification par clé uniquement pour la connexion root soit autorisée par votre politique de sécurité, une modification du fichier sshd_config peut aider:
Votre kilométrage peut varier, bien que cela aide souvent, une autre configuration peut toujours interférer selon un commentaire trouvé dans certains fichiers sshd_config :
Même si vous ne pouvez pas facilement modifier la configuration du serveur distant pour déboguer de cette manière, on peut éprouver la configuration côté client dans une certaine mesure en utilisant les mêmes fichiers d'identité pour ssh vers un compte non root sur le même serveur distant.
la source
Je peux voir pourquoi la sécurité peut déranger les gens. J'ai juste eu le
ssh won't use my key
nouveau problème. Je l'ai résolu en me connectant au serveur distant et en exécutantpuis à partir de mon bureau (en essayant de ssh vers le serveur)
Sur le serveur, j'ai
Authentication refused: bad ownership or modes for directory /
Un nouveau sysadmin avait gâché la permission et la propriété, que j'ai corrigée avec:
(Je suis habitué à avoir besoin
chmod 0600 ~/.ssh/* ; chmod 0644 ~/.ssh/*.pub
mais sshd vérifiant / trouvant les autorisations root est un nouveau pour moi.) Maintenant, je vais vérifier un rootkit, puis essuyer et réinstaller de toute façon.la source
Dans mon cas, les problèmes étaient liés à l'exécution incorrecte du shell.
Fichier / etc / passwd modifié pour cet utilisateur
la source
J'ai eu ce problème sur CentOS 7. Je suis un utilisateur Linux régulier basé sur Debian, j'étais donc un poisson hors de l'eau. J'ai remarqué que dans certains serveurs, cela fonctionnait et dans un seul, cela ne fonctionnait pas. L'audit.log n'a rien dit d'utile et le secure.log n'a rien donné non plus. J'ai trouvé que la seule vraie différence était quelques différences de contexte de sécurité sur les fichiers et les répertoires entre ceux qui fonctionnaient et ceux qui ne fonctionnaient pas. Obtenez la sécurité avec
sudo ls -laZ <user-home>/.ssh
du répertoire (je suppose que beaucoup de valeurs par défaut sur sshd_config).
Vous devriez en voir
ssh_home_t
etuser_home_t
attributs . Si vous ne le faites pas, utilisez lachcon
commande pour ajouter les attributs manquants.Par exemple
Dans mon cas, je soupçonne que l'utilisateur a été créé de manière non standard. Sa maison était un répertoire
/var/lib
.Plus d'informations sur: https://www.linuxquestions.org/questions/linux-security-4/selinux-preventing-ssh-login-with-~-ssh-authorized_keys-4175469538/
la source