You need to be able to log in on another host on the same network segment. Some of the ways to get access to the misconfigured host requires root on the intermediate host, but there also is one easy way to get access without needing root on the intermediate host.
The easy way to access the host using IPv6
ssh -o ProxyCommand='ssh -W [fe80::42:ff:fe:42%%eth0]:%p user@intermediate-host' root@target-server
The following example values in above command need to be substituted with correct values for your use case: fe80::42:ff:fe:42
, eth0
, user
, intermediate-host
, and target-server
.
Detailed explanation of how it works
ProxyCommand
is an ssh feature to use when you cannot open a TCP connection directly to the target host. The argument to ProxyCommand
is a command whose stdin/stdout to use instead of a TCP connection.
-W
is used to open a single port forwarding and connect it to stdin/stdout. This fits nicely together with ProxyCommand
.
fe80::42:ff:fe:42%%eth0
is the link-local address of the target host. Notice that due to ProxyCommand
using %
as escape character, the typed ssh command must use %%
in that location. You can find all link-local addresses on the segment by running ssh user@intermediate-host ping6 -nc2 ff02::1%eth0
.
Using IPv6 link-local addresses for this purpose is usually the easiest way because it is enabled by default on all modern systems, and link-local addresses keep working even if both IPv4 and IPv6 stacks are severely misconfigured.
Falling back to IPv4
If IPv6 is completely disabled on the misconfigured host (absolutely not recommended), then you may have to resort to using IPv4. Since IPv4 doesn't have link-local addresses the way IPv6 does then accessing the misconfigured host using IPv4 gets more complicated and need root access on the intermediate host.
If the misconfigured host was still able to use its default gateway, you would be able to access it from outside. Possibly the misconfigured netmask also broke the default gateway due to the stack refusing to use a gateway outside of the prefix covered by the netmask. If this is indeed the case, the misconfigured host will only be able to communicate with 192.168.1.8 because that's the only other IP address in the subnet currently accessible to this misconfigured host.
If you have a login on 192.168.1.8, you might just be able to ssh from there to 192.168.1.9. If 192.168.1.8 is currently unassigned you can temporarily assign it to any host on the segment on which you have root access.