Unable to negotiate with __IP_ADDRESS_ port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss

Viewed 12060

While using git clone in PhpStorm, I got an error message:

Clone failed
Unable to negotiate with IP ADDRESS port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.

I then made my own RSA key in and saved it on my computer; also registered it on the server (by server host) where I wanted to get git clone. I've also downgraded my latest PhpStorm version. As a last resort I have also reset my computer and reinstalled PhpStorm.

But I still have that error message in my PhpStorm event log.

Plus, when I first got PhpStorm, I could easily get clone successfully, but suddenly after days, I've got event log entries like that.

Can I get a solution about this, OTL

4 Answers

On Linux/Ubuntu I added the following lines to /etc/ssh/ssh_config:

    PubkeyAcceptedAlgorithms +ssh-rsa
    HostkeyAlgorithms +ssh-rsa

I guess it is equivalent (and better) to put the same lines in a separate file in /etc/ssh/ssh_config.d.

Add PubkeyAcceptedAlgorithms +ssh-rsa and HostkeyAlgorithms +ssh-rsa attributes.

nano ~/.ssh/config
Host hostname_of_machine
    HostName hostname_or_ip_address
    User root
    IdentityFile ~/.ssh/file.pem
    IdentitiesOnly yes
    PubkeyAcceptedAlgorithms +ssh-rsa
    HostkeyAlgorithms +ssh-rsa

Check, as in here, if using a private key without passphrase improves the situation.

Check also settings>Version Control>git >SSH Executable: try system instead of "native", and double-check your %PATH% (Windows) or $PATH (Linux/Mac).

On Windows, I would make sure C:\Program files\Git\usr\bin\ssh.exe comes first.

If you are on Windows, try this.

  1. Follow these commands. You can generate id_rsa file and id_rsa.pub. Basically, These files can be found on ~/.ssh directory.
cat ~/.ssh/id_rsa.pub
ssh-keygen -o -t rsa -b 4096 -C "email@example.com"
cat ~/.ssh/id_rsa.pub | clip
ssh -T git@gitlab.example.com
  1. Create a config on ~/.ssh directory and paste these attributes.
# GitLab.com
Host gitlab.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab_com_rsa

# Private GitLab instance
Host gitlab.company.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/example_com_rsa
  PubkeyAcceptedAlgorithms +ssh-rsa
  HostkeyAlgorithms +ssh-rsa
  • You should change the Host and IdentityFile accordingly. For example: IdentityFile ~/.ssh/id_rsa.
  • Please note these attributes. PubkeyAcceptedAlgorithms +ssh-rsa and HostkeyAlgorithms +ssh-rsa
  1. Try this command and verify that your SSH key was added correctly.
ssh -T git@gitlab.example.com

References: https://docs.gitlab.com/ee/user/ssh.html#rsa-ssh-keys

Related