Search code examples
gitgithubsshcygwin

Why can I not clone repository from Github using Cygwin SSH on Windows 7?


I want to clone my own repository from Github using Git+Cygwin+Ssh.

How to do it - I create key, I publish public key on github.com, I do ssh-add?

What I am doing wrong?

$git clone [email protected]:ChameleonRed/test.git
Cloning into 'test'...
Warning: Permanently added the RSA host key for IP address '192.30.252.123' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

With logging more details:

OpenSSH_7.2p2, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to github.com [192.30.252.123] port 22.
debug1: Connection established.
debug1: identity file /home/Crezary Wagner/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Crezary Wagner/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Crezary Wagner/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Crezary Wagner/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Crezary Wagner/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Crezary Wagner/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Crezary Wagner/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Crezary Wagner/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2
debug1: Remote protocol version 2.0, remote software version libssh-0.7.0
debug1: no match: libssh-0.7.0
debug1: Authenticating to github.com:22 as 'git'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ssh-rsa
debug1: kex: server->client cipher: [email protected] MAC:  compression: none
debug1: kex: client->server cipher: [email protected] MAC:  compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ssh-rsa SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /home/Crezary Wagner/.ssh/known_hosts:3
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/Crezary Wagner/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/Crezary Wagner/.ssh/id_dsa
debug1: Trying private key: /home/Crezary Wagner/.ssh/id_ecdsa
debug1: Trying private key: /home/Crezary Wagner/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

Solution

  • As you figured out you should use ssh keys. Follow those step to generate and use the keys under GitHub.

    Here is how to set it up:

    • Generate a new ssh key (or skip this step if you already have a key as you mentioned )
      ssh-keygen -t rsa -C "your@email"

    • Once you have your key set in home/.ssh directory (or Users/<your user>.ssh under windows), open it and copy the content to the relevant section (ssh keys) under your central repository.



    How to set up ssh key under your GitHub account?

    • Login to GitHub account
    • Click on the rancher on the top right (Settings)
      enter image description here
    • Click on the SSH keys and GPG Keys
      enter image description here
    • Click on the New SSH key
      enter image description here
    • Paste your key and save

    Note

    After the first set up open terminal and run a git fetch so the key will be tested and added to your known hosts file.