Why am I getting a connection timeout error with ssh?

There are a number of reasons this could be happening - these are likely due to firewalling going on somewhere.

SSH sits on top of TCP. When you get connection timed out errors it means that the problem is that the SSH client is not seeing any responses from the server (ie the TCP handshake is not completing) which almost always means the problems is not with SSH, rather its at a lower level. This also explains why you get this error on ports that SSH is not listening on.

The first thing I do is examine firewall rules to check they are allowing SSH through. As the problem seems limited to your laptop/desktop, checking the local firewall and AV software is a good place to start.

If that does not solve it, break out traffic sniffers - seeing if the server receives and sends traffic is a useful hint. As its Linux, running something like

  tcpdump -n -i any src or dst XXX.XXX.XXX.XXX 

Can be useful where XXX.XXX.XXX.XXX is your external IP and where your monitoring us taking place from a computer not on the same man as your desktop.(maybe SSH to an intermediate server ie using a cellular connection or vpn?)

If its a complex network you may need to get your network administrator involved. If its a simple network where you are the network admin you might want to suspect an issue with port forwarding on your router and/or bad config related to this.

Using a VPN can "virtually move" the apparent point if your connection and can be useful for diagnosing/bypassing firewall issues.