Dealing with SSH Host Key Changes
The CAT periodically updates the SSH host keys on its servers for security purposes, which can result in users seeing an error message similar to below when attempting to connect with an MCECS Linux system.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:g38Q4Xc1UI4WcClY+GaohmhZSOHbgLo6+eYBFr0Iu6U.
Please contact your system administrator.
Add correct host key in /Users/me/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/me/.ssh/known_hosts:10
RSA host key for rita.cecs.pdx.edu has changed and you have requested strict checking.
Host key verification failed.
If you are unable to get past this error message, you will need to remove the old host key entry inside the known_hosts
file.
In the example above, the message indicates that there is an entry for the server rita.cecs.pdx.edu
located on line 10 of the known_hosts
file that needs to be removed. These two lines give us the relevant information.
Offending RSA key in /Users/me/.ssh/known_hosts:10
RSA host key for rita.cecs.pdx.edu has changed and you have requested strict checking.
With these two pieces of information, you can choose one of several methods to edit the known_hosts
file and get connected with our systems again.
Table of Contents
MacOS, Linux, and MobaXterm Users on Windows
Method 1: ssh-keygen
command
From the command line, you can delete the old host key entry with the following command. Make sure to replace $hostname
with the system you are trying to connect with.
ssh-keygen -R $hostname
For the example up above, you would run the command ssh-keygen -R rita.cecs.pdx.edu
to delete the entry for rita.cecs.pdx.edu
.
Method 2: edit known_hosts
directly
Using a text editor like vim or emacs, you can edit the known_hosts
file and delete the old host key. For example, if you wanted to use vim, you would run the following command:
vim ~/.ssh/known_hosts
You would then delete the line containing the old host key. In the example up above, the key for rita.cecs.pdx.edu
is on line 10.
Method 3: delete known_hosts
If all else fails, you can delete your known_hosts
file. As a precaution, you should make a copy of the file before deleting it with the following command:
cp ~/.ssh/known_hosts ~/.ssh/known_hosts.old
Then run the following command to delete the file:
rm ~/.ssh/known_hosts
Generally the CAT upgrades SSH keys on all of its systems at the same time. For users of that connect with multiple MCECS Linux systems, this may result in them seeing the host key error message repeatedly. In this case, it may be preferable to delete the known_hosts
file and start from scratch.
MobaXterm users can also access their known_hosts
file through File Explorer. By default, it will be in Documents\MobaXterm\home\.ssh
PuTTY users on Windows
If you are using PuTTY on Windows, you will need to use the Registry Editor to delete old SSH host keys.
First, search for Registry Editor or regedit in the Windows search box and then open the application
Next, navigate to HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys
to find the list of SSH host keys
Right click on the old entry and select Delete