SSH security improvements: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
(Created page with "=SSH Changes (Summer 2019)= With the passage of time and significant increase in computing power available, a variety of encryption algorithms and protocols which were reaso...")
 
No edit summary
Line 6: Line 6:
== What Changed? ==
== What Changed? ==


During the 29-30 May 2019 shutdown, we made the following ssh security improvements on Niagara:
During the summer of 2019, we will make the following SSH security improvements on Compute Canada clusters:


# Disabled certain weak encryption algorithms.
# Disable certain weak encryption algorithms.
# Disabled certain weak public key types.
# Disable certain weak public key types.
# Regenerated Niagara's host keys.
# Regenerate the cluster's host keys.


== Updating your client's known host list ==
== Updating your client's known host list ==


The first time you login to Niagara after the shutdown, you will probably see the following warning message:
The first time you login to a Compute Canada cluster after the changes, you will probably see the following warning message:


<pre>
<pre>
Line 28: Line 28:
Add correct host key in /home/username/.ssh/known_hosts to get rid of this message.
Add correct host key in /home/username/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/username/.ssh/known_hosts:109
Offending ECDSA key in /home/username/.ssh/known_hosts:109
ED25519 host key for niagara.scinet.utoronto.ca has changed and you have requested strict checking.
ED25519 host key for graham.computecanada.ca has changed and you have requested strict checking.
Host key verification failed.
Host key verification failed.
Killed by signal 1.
Killed by signal 1.
</pre>
</pre>


This warning is displayed because the host keys on Niagara changed to increase the data centre's security, and ssh clients remember old host keys to prevent [https://en.wikipedia.org/wiki/Man-in-the-middle_attack "man-in-the-middle" attacks].  
This warning is displayed because the host keys on the cluster (in this case [[Graham]]) changed to increase the data centre's security, and ssh clients remember old host keys to prevent [https://en.wikipedia.org/wiki/Man-in-the-middle_attack "man-in-the-middle" attacks].  


You may also get a warning regarding "DNS spoofing", which is related to the same change.
You may also get a warning regarding "DNS spoofing", which is related to the same change.
Line 41: Line 41:
If you are using the command line ssh command on macOS, Linux, GitBash or Cygwin, you should tell your system to "forget" the old host keys, by running the following commands:
If you are using the command line ssh command on macOS, Linux, GitBash or Cygwin, you should tell your system to "forget" the old host keys, by running the following commands:


  ssh-keygen -R niagara.scinet.utoronto.ca
  ssh-keygen -R graham.computecanada.ca
  ssh-keygen -R niagara.computecanada.ca
  ssh-keygen -R cedar.computecanada.ca
  ssh-keygen -R 142.150.188.70
  ssh-keygen -R beluga.computecanada.ca
ssh-keygen -R nia-datamover1.scinet.utoronto.ca
ssh-keygen -R nia-datamover2.scinet.utoronto.ca
ssh-keygen -R 142.150.188.131
ssh-keygen -R 142.150.188.132


Afterwards, the next time you ssh to Niagara you'll be asked to confirm the new host keys, e.g.:
Afterwards, the next time you ssh to the cluster you'll be asked to confirm the new host keys, e.g.:


  $ ssh niagara.scinet.utoronto.ca
  $ ssh graham.computecanada.ca
  The authenticity of host 'niagara.scinet.utoronto.ca (142.150.188.70)' can't be established.
  The authenticity of host 'graham.computecanada.ca (142.150.188.70)' can't be established.
  ED25519 key fingerprint is SHA256:SauX2nL+Yso9KBo2Ca6GH/V9cSFLFXwxOECGWXZ5pxc.
  ED25519 key fingerprint is SHA256:SauX2nL+Yso9KBo2Ca6GH/V9cSFLFXwxOECGWXZ5pxc.
  ED25519 key fingerprint is MD5:b4:ae:76:a5:2b:37:8d:57:06:0e:9a:de:62:00:26:be.
  ED25519 key fingerprint is MD5:b4:ae:76:a5:2b:37:8d:57:06:0e:9a:de:62:00:26:be.
Line 74: Line 70:
  Unable to negotiate with 142.150.188.70 port 22: no matching mac found.
  Unable to negotiate with 142.150.188.70 port 22: no matching mac found.


you need to upgrade your ssh client.
you need to upgrade your SSH client.


=== My SSH key no longer works ===
=== My SSH key no longer works ===

Revision as of 17:40, 4 June 2019

SSH Changes (Summer 2019)

With the passage of time and significant increase in computing power available, a variety of encryption algorithms and protocols which were reasonably secure ten or fifteen years ago can no longer be used without an elevated risk of the connection being compromised by a third party. For this reason, Compute Canada is modifying its policies for the use of SSH in order to require more secure ciphers and increasing the length of the keys used to verify the identity of clusters and users to one another. For some users, this will mean having to update their SSH client software or generate a new public/private keypair, while everyone will have to update the local copy of the key which is used to identify the Compute Canada clusters to which they connect.

What Changed?

During the summer of 2019, we will make the following SSH security improvements on Compute Canada clusters:

  1. Disable certain weak encryption algorithms.
  2. Disable certain weak public key types.
  3. Regenerate the cluster's host keys.

Updating your client's known host list

The first time you login to a Compute Canada cluster after the changes, you will probably see the following warning message:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 ED25519 key sent by the remote host is
SHA256:SauX2nL+Yso9KBo2Ca6GH/V9cSFLFXwxOECGWXZ5pxc.
Please contact your system administrator.
Add correct host key in /home/username/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/username/.ssh/known_hosts:109
ED25519 host key for graham.computecanada.ca has changed and you have requested strict checking.
Host key verification failed.
Killed by signal 1.

This warning is displayed because the host keys on the cluster (in this case Graham) changed to increase the data centre's security, and ssh clients remember old host keys to prevent "man-in-the-middle" attacks.

You may also get a warning regarding "DNS spoofing", which is related to the same change.

If you are using MobaXTerm, Putty, or WinSCP as your ssh (or scp) client under Windows, the warning will appear in a pop-up window and will allow you to accept the new host key by clicking "Yes".

If you are using the command line ssh command on macOS, Linux, GitBash or Cygwin, you should tell your system to "forget" the old host keys, by running the following commands:

ssh-keygen -R graham.computecanada.ca
ssh-keygen -R cedar.computecanada.ca
ssh-keygen -R beluga.computecanada.ca

Afterwards, the next time you ssh to the cluster you'll be asked to confirm the new host keys, e.g.:

$ ssh graham.computecanada.ca
The authenticity of host 'graham.computecanada.ca (142.150.188.70)' can't be established.
ED25519 key fingerprint is SHA256:SauX2nL+Yso9KBo2Ca6GH/V9cSFLFXwxOECGWXZ5pxc.
ED25519 key fingerprint is MD5:b4:ae:76:a5:2b:37:8d:57:06:0e:9a:de:62:00:26:be.
Are you sure you want to continue connecting (yes/no)? 

Make sure the fingerprints are correct! You'll either see the above ED25519 fingerprints, or the following RSA fingerprints:

RSA key fingerprint is SHA256:k6YEhYsI73M+NJIpZ8yF+wqWeuXS9avNs2s5QS/0VhU.
RSA key fingerprint is MD5:98:e7:7a:07:89:ef:3f:d8:68:3d:47:9c:6e:a6:71:5e.

If the fingerprints don't match, someone may be trying to hijack your connection.

Troubleshooting

I can't connect!

If you see one of the following error messages:

Unable to negotiate with 142.150.188.70 port 22: no matching cipher found.
Unable to negotiate with 142.150.188.70 port 22: no matching key exchange method found.
Unable to negotiate with 142.150.188.70 port 22: no matching mac found.

you need to upgrade your SSH client.

My SSH key no longer works

If you're being asked for a password, but were using SSH keys, it's because 1024-bit DSA & RSA keys have been disabled.

You need to generate a new stronger key, see the SSH keys page for details.