web-dev-qa-db-fra.com

Pourquoi ma clé SSH ne fonctionne-t-elle pas pour me connecter à github?

Remarque: je ne suis pas un néophyte et je l'ai déjà fait des milliards de fois, mais aujourd'hui, pour une raison quelconque, il a été décidé de ne pas travailler.

Je continue à recevoir le message d'erreur Permission denied (publickey). lorsque j'essaie de me connecter à github via SSH ou lorsque je tente de cloner un référentiel, même après avoir refait la clé ssh et l'avoir ajoutée à "SSH Keys" dans mon compte.

C'est ce que j'ai essayé de faire dix fois aujourd'hui sans succès:

  1. faire une clé avec ssh-keygen.
  2. ouvrez ~/.ssh/id_rsa.pub avec Gedit ou Notepad ++ et copiez le contenu.
  3. Accédez aux paramètres du compte sur github.com
  4. Aller aux clés SSH
  5. Cliquez sur le bouton Ajouter une clé.
  6. donner un titre à la clé
  7. collez la clé dans la boîte à clés.
  8. Enregistrez la clé (entrez mon mot de passe github pour le vérifier).

Et maintenant, quand j'essaie de faire ssh github.com, ça ne marchera tout simplement pas ... Et dans le monde? Suis-je trop fatigué en ce moment ou est-ce que je manque quelque chose?

Voici le résultat de ssh -vvv github.com

OpenSSH_5.9p1, OpenSSL 1.0.0f 4 Jan 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: ssh_connect: needpriv 0
debug1: Connecting to github.com [207.97.227.239] port 22.
debug1: Connection established.
debug3: Incorrect RSA1 identifier
debug3: Could not load "/home/trusktr/.ssh/id_rsa" as a RSA1 public key
debug1: identity file /home/trusktr/.ssh/id_rsa type 1
debug1: identity file /home/trusktr/.ssh/id_rsa-cert type -1
debug1: identity file /home/trusktr/.ssh/id_dsa type -1
debug1: identity file /home/trusktr/.ssh/id_dsa-cert type -1
debug1: identity file /home/trusktr/.ssh/id_ecdsa type -1
debug1: identity file /home/trusktr/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-5github2
debug1: match: OpenSSH_5.1p1 Debian-5github2 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9
debug2: fd 3 setting O_NONBLOCK
debug3: load_hostkeys: loading entries for Host "github.com" from file "/home/trusktr/.ssh/known_hosts"
debug3: load_hostkeys: found key type RSA in file /home/trusktr/.ssh/known_hosts:16
debug3: load_hostkeys: loaded 1 keys
debug3: order_hostkeyalgs: prefer hostkeyalgs: [email protected],[email protected],ssh-rsa
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: kex_parse_kexinit: 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: kex_parse_kexinit: [email protected],[email protected],ssh-rsa,[email protected],[email protected],[email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-256-96,hmac-sha2-512,hmac-sha2-512-96,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit: 
debug2: kex_parse_kexinit: 
debug2: kex_parse_kexinit: first_kex_follows 0 
debug2: kex_parse_kexinit: reserved 0 
debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,[email protected],aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,[email protected],aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,[email protected]
debug2: kex_parse_kexinit: none,[email protected]
debug2: kex_parse_kexinit: 
debug2: kex_parse_kexinit: 
debug2: kex_parse_kexinit: first_kex_follows 0 
debug2: kex_parse_kexinit: reserved 0 
debug2: mac_setup: found hmac-md5
debug1: kex: server->client aes128-ctr hmac-md5 none
debug2: mac_setup: found hmac-md5
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
debug2: dh_gen_key: priv key bits set: 122/256
debug2: bits set: 510/1024
d    ebug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server Host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
debug3: load_hostkeys: loading entries for Host "github.com" from file "/home/trusktr/.ssh/known_hosts"
debug3: load_hostkeys: found key type RSA in file /home/trusktr/.ssh/known_hosts:16
debug3: load_hostkeys: loaded 1 keys
debug3: load_hostkeys: loading entries for Host "207.97.227.239" from file "/home/trusktr/.ssh/known_hosts"
debug3: load_hostkeys: found key type RSA in file /home/trusktr/.ssh/known_hosts:16
debug3: load_hostkeys: loaded 1 keys
debug1: Host 'github.com' is known and matches the RSA Host key.
debug1: Found key in /home/trusktr/.ssh/known_hosts:16
debug2: bits set: 497/1024
debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /home/trusktr/.ssh/id_rsa (0x14cce60)
debug2: key: trusktr@rocketship (0x14ce2b0)
debug2: key: /home/trusktr/.ssh/id_dsa ((nil))
debug2: key: /home/trusktr/.ssh/id_ecdsa ((nil))
debug1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/trusktr/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey
debug1: Offering RSA public key: trusktr@rocketship
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/trusktr/.ssh/id_dsa
debug3: no such identity: /home/trusktr/.ssh/id_dsa
debug1: Trying private key: /home/trusktr/.ssh/id_ecdsa
debug3: no such identity: /home/trusktr/.ssh/id_ecdsa
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).
43
trusktr

Le GitHub ssh setup mentionne le test de votre connexion GitHub avec: 

$ ssh -T [email protected]

Cela suit la syntaxe ssh uri (également illustré dans " cette réponse ").

Mais tu l'as fait:

ssh github.com

(sans utilisateur). Dans ce cas, ssh rétablit la syntaxe SCP , qui repose sur un fichier ~/.ssh/config, avec une section "github.com", pour répertorier

  • l'utilisateur
  • le nom d'hôte
  • (et éventuellement l'emplacement de la clé publique, mais par défaut, il tentera ~/.ssh/id_rsa.pub)

Pour le changer en une URL SSH normale, ne modifiez pas directement votre fichier .git/config, comme indiqué ci-dessous.
Utilisez la commande git remote set-url :

git remote set-url Origin [email protected]:username/repo.git
43
VonC

J'ai eu un problème similaire, github n'a pas utilisé ma clé SSH. Je devais toujours entrer mon nom d'utilisateur et mon mot de passe.

Je suis en train de regarder .git/config.

    url = http://github.com/path/to/repository

ou

    url = https://github.com/path/to/repository

J'ai changé la ligne en

    url = ssh://[email protected]/path/to/repository

et puis cela a fonctionné.

60
Artisan72

Après avoir créé un fichier de configuration (~/.ssh/config), cela a fonctionné. Voici ce que je devais y mettre:

Host github.com
User git
Port 22
Hostname github.com
IdentityFile ~/.ssh/id_rsa
TCPKeepAlive yes
IdentitiesOnly yes

Merci à @VonC de m'avoir conduit là-bas dans les commentaires.

Je ne comprends pas pourquoi je n'ai jamais eu besoin de ça auparavant.

24
trusktr

Si fonctionne pour d'autres référentiels, mais pas un en particulier, vous utilisez probablement la mauvaise URL distante (c'est-à-dire. https au lieu de [email protected])

  1. Commencez par vérifier que votre connexion git ssh fonctionne:

    ssh -T [email protected]
    
  2. Si cela fonctionne, vérifiez votre télécommande:

    git remote -v
    

    il affichera quelque chose comme ceci:

    Origin  https://github.com/username/repo(fetch)
    Origin  https://github.com/username/repo(Push)
    
  3. Si les télécommandes indiquent https au début, vous devez modifier cette URL avec:

    git remote set-url Origin [email protected]:usertname/repo.git
    

Allez ici pour plus de détails.

3
toto_tico

GitHub a récemment subi un audit de TOUTES les clés. Allez à la section clé de votre compte pour le réapprouver.

1
Alan Williams

Pour ssh, vous devez changer l'URL. Ouvrez le fichier de configuration git et remplacez l’URL par

url = [email protected]:username/repository.git
0
orangesherbert