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

May 2024 ยท 3 minute read

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

2

7 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.

4

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 
2

This is because OpenSSH have deprecated ssh-rsa.
To enable it, add -oHostKeyAlgorithms=+ssh-rsa to your command.

It's work for me , enter ssh config with this command , sudo nano /etc/ssh/ssh_config and then add follow new two line into your ssh config ,

PubkeyAcceptedAlgorithms +ssh-rsa HostkeyAlgorithms +ssh-rsa 

save and exit login again ssh if you got this message "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!" type this command and hit enter , rm .ssh/known_hosts try login again ssh. my English is bad sorry for inconvinience

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.

  • 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 protected]" 
    cat ~/.ssh/id_rsa.pub | clip 
    ssh -T [email protected] 
  • 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 
  • Try this command and verify that your SSH key was added correctly.
  • ssh -T [email protected] 

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

    Try these commands:

    apt update 
    apt install rsh-client 

    Then try this again.

    rslogin -l user hostIP 

    ncG1vNJzZmirpJawrLvVnqmfpJ%2Bse6S7zGiorp2jqbawutJobmpvY2aCd4KOrqWampyaerW7jKecoKeknq61sYywoK2gXZ69bq3Dnameq6NivbC%2B02Zpa2WepHqurdOcn6Kml2K1sL%2FTZqKesV2pxrGxjJ%2BmrqaU