Git error: “Host Key Verification Failed” when connecting to remote repository

前端 未结 19 958
迷失自我
迷失自我 2020-11-22 11:40

I am trying to connect to a remote Git repository that resides on my web server and clone it to my machine.

I am using the following format for my command:



        
相关标签:
19条回答
  • 2020-11-22 12:17

    You are connecting via the SSH protocol, as indicated by the ssh:// prefix on your clone URL. Using SSH, every host has a key. Clients remember the host key associated with a particular address and refuse to connect if a host key appears to change. This prevents man in the middle attacks.

    The host key for domain.com has changed. If this does not seem fishy to you, remove the old key from your local cache by editing ${HOME}/.ssh/known_hosts to remove the line for domain.com or letting an SSH utility do it for you with

    ssh-keygen -R domain.com
    

    From here, record the updated key either by doing it yourself with

    ssh-keyscan -t rsa domain.com >> ~/.ssh/known_hosts
    

    or, equivalently, let ssh do it for you next time you connect with git fetch, git pull, or git push (or even a plain ol’ ssh domain.com) by answering yes when prompted

    The authenticity of host 'domain.com (a.b.c.d)' can't be established.
    RSA key fingerprint is XX:XX:...:XX.
    Are you sure you want to continue connecting (yes/no)?

    The reason for this prompt is domain.com is no longer in your known_hosts after deleting it and presumably not in the system’s /etc/ssh/ssh_known_hosts, so ssh has no way to know whether the host on the other end of the connection is really domain.com. (If the wrong key is in /etc, someone with administrative privileges will have to update the system-wide file.)

    I strongly encourage you to consider having users authenticate with keys as well. That way, ssh-agent can store key material for convenience (rather than everyone having to enter her password for each connection to the server), and passwords do not go over the network.

    0 讨论(0)
  • 2020-11-22 12:17

    I had the similar issue, but, using SSH keys. From Tupy's answer, above, I figured out that the issue is with known_hosts file not being present or github.com not being present in the list of known hosts. Here are the steps I followed to resolve it -

    1. mkdir -p ~/.ssh
    2. ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
    3. ssh-keygen -t rsa -C "user.email"
    4. open the public key with this command $ cat ~/.ssh/id_rsa.pub and copy it.
    5. Add the id_rsa.pub key to SSH keys list on your GitHub profile.
    0 讨论(0)
  • 2020-11-22 12:17

    Its means your remote host key was changed (May be host password change),

    Your terminal suggested to execute this command as root user

    $ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]
    

    You have to remove that host name from hosts list on your pc/server. Copy that suggested command and execute as a root user.

    $ sudo su                                                        // Login as a root user
    
    $ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]    // Terminal suggested command execute here
    Host [www.website.net]:4231 found: line 16 type ECDSA
    /root/.ssh/known_hosts updated.
    Original contents retained as /root/.ssh/known_hosts.old
    
    $ exit                                                           // Exist from root user
    

    Try Again, Hope this works.

    0 讨论(0)
  • 2020-11-22 12:19

    When the remote server wants to connect to the private repo, it would authenticate via ssh. Create the private-public key pair with ssh-keygen or if you already have the public-private key. copy&paste the public key in the Settings of the private repo.

    YourPrivateRepo -> Settings -> Deploy Keys -> Add deploy key -> Paste the public key.

    Now the remote server would be able to connect to the private repo.

    NOTE: The deploy keys has access only for reading the repo. Need to explicitly allow write access.

    0 讨论(0)
  • 2020-11-22 12:20

    I got this message when I tried to git clone a repo that was not mine. The fix was to fork and then clone.

    0 讨论(0)
  • 2020-11-22 12:23

    Reason seems to be that the public key of the remote host is not stored or different from the stored one. (Be aware of security issues, see Greg Bacon's answer for details.)

    I was used to git clone prompting me in this case:

    The authenticity of host 'host.net (10.0.0.42)' can't be established.
    ECDSA key fingerprint is 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00.
    Are you sure you want to continue connecting (yes/no)?
    

    Not sure, why this error is thrown instead. Could be the configuration of your shell or the git SSH command.
    Anyhow, you can get the same prompt by running ssh user@host.net.

    0 讨论(0)
提交回复
热议问题