Error: ssh: handshake failed: knownhosts: key mismatch

Labels: area/git kind/bug lifecycle/pinned priority/important-soon triage/accepted

Timeline

jarbus (jarbus) opened

I can pull/push my repo from github fine, but I can't push bugs. When I do, I get the following error:

➜ git bug push
Error: ssh: handshake failed: knownhosts: key mismatch

I'm using v0.8.0 on arch linux. I've got all my ssh keys in my knownhosts file.

jarbus (jarbus) commented

Apologies if this is just a bug with my ssh config, but I'm imagining there is an assumption of how ssh should be configured for gitbug that I'm missing.

Michael Muré (MichaelMure) commented

It could be a go-git issue. Git-bug use go-git for every git manipulation, including push/pull. From what I've seen, it can get confused sometimes by some configurations.

Klaus Alexander Seistrup (kseistrup) commented

I'm using v0.8.0 on arch linux

I'm also on Arch Linux and experienced the same issue. I solved it like this:

$ for keytype in rsa ecdsa ed25519; do
    ssh-keyscan -t "$keytype" github.com >> ~/.ssh/known_hosts
  done
$ 

jarbus (jarbus) commented (edited)

I'm also on Arch Linux and experienced the same issue. I solved it like this:

$ for keytype in rsa ecdsa ed25519; do
    ssh-keyscan -t "$keytype" github.com >> ~/.ssh/known_hosts
  done
$ 

Just made an ecdsa key to try this, I get the following error:

Error: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

But the error goes back to the initial key mismatch error if I remove the ecdsa entry

Klaus Alexander Seistrup (kseistrup) commented

Hm… :thinking:

I didn't create an ecdsa key, I just fetched the three keytypes from remote with the ssh-keyscan thing, but there must be some other differences in our setup since it doesn't work at your end.

Maciej Trębacz (maciej-trebacz) commented

I'm also on Arch Linux and experienced the same issue. I solved it like this:

$ for keytype in rsa ecdsa ed25519; do
    ssh-keyscan -t "$keytype" github.com >> ~/.ssh/known_hosts
  done
$ 

Thanks, this solved the issue for me!

jarbus (jarbus) commented

Still not working for me, even building from source with the latest version of go-git :(

jarbus (jarbus) commented

Update: Got it to work by ssh-add'ing my rsa key

halloumee (halloumee) commented (edited)

Update: Got it to work by ssh-add'ing my rsa key

Doesn't work for me both ssh-add and the for loop above :( I'm using Gitlab.

ssh-keygen -l -v -f ~/.ssh/id_rsa.pub
3072 SHA256:AxuOIT7oMjUmrtt4x90l2K6qJHRSf2FyjjL8rvvfRPA user@host (RSA)
+---[RSA 3072]----+
|                 |
|                 |
|  ....o=         |
| oo..+*++        |
|oo*=.oo=SE       |
|++oo+ o +..      |
|+o.. o o +       |
|o*. + . =        |
|+oo==+oo .       |
+----[SHA256]-----+

More:

cat ~/.ssh/config
Host *
  IdentityFile ~/.ssh/id_rsa
  KexAlgorithms +diffie-hellman-group14-sha1

cat ~/.ssh/known_hosts | grep gitlab.com
gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2.....xxxxxxASUEMaieWVNTRCtJ4S8H+9

git bug bridge push works, btw.

Michael Muré (MichaelMure) added label go-git

James Mills (prologic) commented

I'm getting a kind of similar but different error:

prologic@Jamess-iMac
Sat Dec 24 16:19:04
~/Projects/legit
 (main) 0
$ git bug push
Error: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

Apparently it doesn't know how to auth? 🤔 Normally I use a running ssh-agent

Timo Tiuraniemi (ttiurani) commented

I hit this issue with 0.8.0 (on OSX from brew) and solved it by removing the brew version and compiling the latest master from source. After that git bug push worked.

github-actions (github-actions) added label lifecycle/stale

sudoforge removed label go-git

sudoforge added label kind/bug

sudoforge added label area/git

sudoforge added label triage/accepted

sudoforge added label priority/important-soon

sudoforge added label lifecycle/active

sudoforge removed label lifecycle/stale

sudoforge removed label lifecycle/active

sudoforge added label lifecycle/pinned

sudoforge commented

after attempting to recreate this with the current development head, i've been unable to. given the age of this issue, and the variety in which users both encountered and resolved this, i'm going to close it for now.

if you can reproduce this on the current development head, please open a new issue.

sudoforge closed the bug