Вы должны иметь возможность войти на другой хост в том же сегменте сети. Для некоторых способов получить доступ к неверно настроенному хосту требуется root на промежуточном хосте, но также есть один простой способ получить доступ без необходимости root на промежуточном хосте.
Простой способ получить доступ к хосту с помощью IPv6
ssh -o ProxyCommand='ssh -W [fe80::42:ff:fe:42%%eth0]:%p user@intermediate-host' root@target-server
В следующем примере значение в вышеуказанной необходимости командной быть замещено правильными значениями для случая использования: fe80::42:ff:fe:42
, eth0
, user
, intermediate-host
, и target-server
.
Подробное объяснение того, как это работает
ProxyCommand
это функция ssh, используемая, когда вы не можете открыть TCP-соединение напрямую с целевым хостом Аргументом ProxyCommand
является команда, чей stdin / stdout использовать вместо TCP-соединения.
-W
используется для открытия переадресации одного порта и подключения его к stdin / stdout. Это прекрасно сочетается с ProxyCommand
.
fe80::42:ff:fe:42%%eth0
это локальный адрес ссылки целевого хоста. Обратите внимание, что из-за ProxyCommand
использования в %
качестве escape-символа, набранная команда ssh должна использоваться %%
в этом месте. Вы можете найти все локальные адреса в сегменте, запустив ssh user@intermediate-host ping6 -nc2 ff02::1%eth0
.
Использование локальных IPv6-адресов для этой цели обычно является самым простым способом, поскольку он включен по умолчанию во всех современных системах, а локальные адреса связи продолжают работать, даже если стеки IPv4 и IPv6 серьезно неверно настроены.
Откат к IPv4
Если IPv6 полностью отключен на неправильно настроенном хосте (абсолютно не рекомендуется), вам, возможно, придется прибегнуть к использованию IPv4. Поскольку у IPv4 нет локальных адресов, как у IPv6, доступ к неверно сконфигурированному хосту с использованием IPv4 усложняется и требует корневого доступа на промежуточном хосте.
Если неправильно настроенный хост все еще может использовать шлюз по умолчанию, вы сможете получить к нему доступ извне. Возможно, неправильно настроенная маска сети также сломала шлюз по умолчанию из-за того, что стек отказывался использовать шлюз вне префикса, охватываемого маской сети. Если это действительно так, неправильно настроенный хост сможет обмениваться данными только с 192.168.1.8, потому что это единственный другой IP-адрес в подсети, доступный в данный момент этому неправильно настроенному хосту.
Если у вас есть логин на 192.168.1.8, вы можете просто перейти от ssh к 192.168.1.9. Если 192.168.1.8 в настоящее время не назначен, вы можете временно назначить его любому хосту в сегменте, к которому у вас есть root-доступ.
fe80::42:ff:fe:42
это адрес ...? мой неверно настроенный сервер?