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.
- Follow these commands. You can generate
id_rsafile andid_rsa.pub. Basically, These files can be found on~/.sshdirectory.
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
configon~/.sshdirectory 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
HostandIdentityFileaccordingly. For example:IdentityFile ~/.ssh/id_rsa. - Please note these attributes.
PubkeyAcceptedAlgorithms +ssh-rsaandHostkeyAlgorithms +ssh-rsa
- Try this command and verify that your SSH key was added correctly.
ssh -T [email protected] Try these commands:
apt update apt install rsh-client Then try this again.
rslogin -l user hostIP