Post by druckI've had a look at my RISC OS machine, and it seems I'm using !Nettle
v0.2043b (11 April 2010) built in ssh client, which is mentioned later
in the thread, and this does work - so get that unless you want to get
involved technical stuff below.
What are you testing against, OOI? The change in not accepting certain RSA
keys and some ciphers took effect in OpenSSH 7 (I think) which appeared in
Ubuntu 22.04, and I presume whatever Debian version that was based upon. So
if you're running an older OS on the Pi you might be OK with an older
client, and you would only notice this if you upgraded to a newer OS on the
Pi.
However where I've seen this is newer clients talking to older servers, not
so much older clients talking to newer servers. So it may not have been
related to that change.
Post by druckBTW It's a bit confusing as I initially used Nettle and command line
ssh, then NettleSSH came along with a built in ssh. However this stopped
working with Linux machines, so I went back to Nettle with a newer
command line ssh again. Forgot the latest Nettle has a newer ssh built
in like NettleSSH used to.
I've checked both the command line ssh clients I've found on my systems,
neither of which work on the Pi 4B, although they run on the Mini.M
(versions 6.0p1-1 16-Aug-2012 and 3.8.1p1)
They should probably be rebuilt since upstream is on OpenSSH 9.3 now. I'm
not sure of the status of the GCCSDK autobuilder builds and whether they're
buildable or how broken things are.
Likewise the builds of PuTTY floating around are very out of date too.
Post by druckIf you are using the command line client you do a:-
ssh -vvv <host name>
It will then print out lots of stuff about what it is doing. At some
point it will say what key exchange mechanisms it offers and the server
accepts, and these will differ and it will stop shortly after. Find that
bit and paste it here.
Something like:
debug1: SSH2_MSG_KEXINIT sent
debug3: receive packet: type 20
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,curve25519-***@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c
debug2: host key algorithms: ecdsa-sha2-nistp256-cert-***@openssh.com,ecdsa-sha2-nistp384-cert-***@openssh.com,ecdsa-sha2-nistp521-cert-***@openssh.com,ssh-ed25519-cert-***@openssh.com,ssh-rsa-cert-***@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
...
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: curve25519-***@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: host key algorithms: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ssh-ed25519
...
For example, we said we could do key exchange algorithms A/B/C/D/E and host key
algorithms X/Y/Z, and the server said it can do CDFG and TUZ, so they have to
pick one of C or D and only Z as those are the only common algorithms we can
agree on.
The problem in question being that our client said we can do ABCD and the
server said it can do GHIJ but there's nothing in common, so we have to
specifically tell the server to use older insecure algorithms C or D so it
can allow the connection.
The recent update to OpenSSH was changing the default set of allowed host
key algorithms so that older algorithms were removed from the list, which
makes a problem for communicating with older clients.
Theo