Что касается "обратного" SSH, то есть Reverse Remote Shell, который я использовал некоторое время в аналогичной ситуации.
Но здесь некоторые вещи должны быть разъяснены в первую очередь:
- Какой доступ вам нужен? Мы говорим только о SSH или вы имели в виду что-то еще?
- Что насчет этого веб-сервера (B)? Может ли он получить доступ к пункту назначения (C) напрямую без проблем (что невозможно из A)? Или это только проблема неизвестного / динамического IP-адреса исходного компьютера (A)?
Я предполагаю, что в стандартной ситуации вы можете инициировать исходящие соединения из C без ограничений, и весь новый входящий трафик фильтруется, верно?
ОБНОВИТЬ:
В этом случае вы можете использовать Reverse Remote Shell для подключения из C (школа) к B (учетная запись SSH). Затем, войдя из A (дома) в B по SSH, вы получаете доступ к C обратной консоли. Плюс этого в том, что он должен работать практически на любой конфигурации.
Основные недостатки:
- Это только SSH плюс то, что вы можете делать, когда у вас есть локальный доступ к C.
- Вы безоговорочно доверяете B (что ваша сессия не будет украдена).
Это немного громоздко. Для этого было бы намного проще использовать переадресацию портов SSH , но это иногда блокируется университетами / школами (по крайней мере, из моего опыта). Пожалуйста, посмотрите, можете ли вы использовать его в вашей ситуации. Тогда должно быть возможно более простое и элегантное решение.