Unable to negotiate with __IP_ADDRESS_ port 22: no matching host key type found. Their offer: ssh-rs
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
27 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
2This 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.
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]
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
andIdentityFile
accordingly. For example:IdentityFile ~/.ssh/id_rsa
. - Please note these attributes.
PubkeyAcceptedAlgorithms +ssh-rsa
andHostkeyAlgorithms +ssh-rsa
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