====== SSH Config ======
===== No matching key exchange method =====
Problem connecting from a **Debian 11 Bullseye** to an old **OpenWRT Chaos Calmer**:
ssh root@192.168.31.45
Unable to negotiate with 192.168.31.45 port 22:
no matching key exchange method found.
Their offer: diffie-hellman-group14-sha1,diffie-hellman-group1-sha1,kexguess2@matt.ucc.asn.au
You can edit your **$HOME/.ssh/config** file and put ah **Host** stanza like this:
Host hostname hostname.domain.tld 192.168.31.45
KexAlgorithms +diffie-hellman-group1-sha1
This will force the use of **diffie-hellman-group1-sha1** key exchange method, which is considered less secure nowday.
===== "no matching host key type" and "no mutual signature algorithm" =====
Problem connecting from an Android environment with **Termux version 0.118.0** (February 2022) to an old **Debian 6 Squeeze**:
Unable to negotiate with 192.168.0.250 port 22:
no matching host key type found. Their offer: ssh-rsa,ssh-dss
So the first option to add is **HostKeyAlgorithms**, but there is another and more subtle problem, because no error message is printer unless you add the **-v** option (for verbose),
debug1: send_pubkey_test: no mutual signature algorithm
debug1: No more authentication methods to try.
root@192.168.0.250: Permission denied (publickey).
So also the **PubkeyAcceptedKeyTypes** is required:
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa root@192.168.0.250