When accessing old devices that are not yet using modern encryption algorithms, current Ubuntu installations might reject connection due to the signature algorithm for the public keys being disabled, e.g.
sign_and_send_pubkey: no mutual signature supported
You can enable this on a per-command level by adding the following option to your SSH command line:
ssh -o PubkeyAcceptedKeyTypes=+ssh-rsa ...
As an alternative you can add this permanently for a host by adding it to the host’s configuration in your $HOME/.ssh/config
:
Host myhost
PubkeyAcceptedKeyTypes +ssh-rsa
This also works for other key types like ssh-dss
.
Note: In general you only should do this if you access legacy devices where you have no possibility to upgrade to state-of-the-art encryption algorithms. Those algorithms got deprecated for a reason. Therefore always do this on a per-command or per-target-host level instead of blindly enabling those algorithms in your global SSH config.