Ответы ping и отклонённый вход по SSH могут быть верны одновременно, и эта пара не обвиняет туннель. Ответы эха и TCP-соединение к порту 22 — разные тесты с разными селекторами, разными политиками и часто разными назначениями. Зафиксируйте одну намеренную попытку SSH, затем назовите последний этап, которого она достигла. Этот единственный артефакт заменяет дюжину умозрительных изменений конфигурации.

Зафиксируйте одну попытку, а не сеанс тычков

Запустите клиент один раз с подробной диагностикой, отключённым разделением соединений и ограниченным тайм-аутом подключения. Отключение разделения важно, потому что ранее аутентифицированное главное соединение иначе ответит за новую попытку и скроет сбой, который вы преследуете.

ssh -4 -vv -o ControlPath=none -o ConnectTimeout=10 [email protected]

Сохраните назначение, семейство адресов, отметку времени и последнюю несекретную ошибку. Флаг IPv4 также означает, что эта попытка ничего не говорит о пути IPv6 к тому же имени, поэтому не обобщайте по ней. Запишите, откуда сделана попытка. Проверка на шлюзе VPN — не та же точка зрения, что ноутбук за ним, и большинство противоречий в этих заявках происходит от смешения обоих.

Первый и второй этапы: TCP до SSH

Первая граница — достижимость сокета: адрес, порт и маршрут, по которому пакет действительно идёт. Если TCP-соединение никогда не устанавливается, выше ещё ничего нет, а ключи хоста и учётные записи не имеют значения.

nc -vz 10.90.4.20 22
ip route get 10.90.4.20
tcpdump -ni any 'host 10.90.4.20 and port 22'

Сопоставьте запись с попыткой клиента. Уходящий SYN, на который ничего не возвращается, указывает на фильтрацию, селекторы или отсутствующий маршрут на дальней стороне; ответ со сбросом указывает на что-то, что активно отвергает, а не отбрасывает. Вторая граница — сам обмен протокола SSH. TCP-соединение, которое устанавливается и затем застревает, прошло доступность и вошло в переговоры, ответ сервера или обработку пакетов. Это другое расследование, и именно там проблемы, связанные с размером, впервые становятся правдоподобными.

Третий этап: чей ключ ответил

Когда транспорт поднят, клиент проверяет ключ хоста сервера. Отказ здесь — утверждение об идентичности, а не о криптографии: партнёр предъявил ключ, который ваша политика не принимает. Считайте это условием остановки и проверьте вне канала, через консоль или оператора, пересобравшего хост. Удаление запомненной записи ради снятия предупреждения — единственный ярлык, от которого следует отказаться, потому что он уничтожает доказательство того, что что-то ответило неожиданно.

Если хост действительно был пересобран, удалите устаревшую запись только после подтверждения нового отпечатка, и отметьте дату и причину. Следующий инженер столкнётся с тем же предупреждением и нуждается в этом контексте.

Четвёртый и пятый этапы: учётная запись против разрешения

Аутентификация — четвёртая граница. Отклонённые учётные данные означают, что сервер оценил попытку и отклонил её; проверьте учётную запись, тип учётных данных, который принимает сервер, и собственную политику сервера, а не пароль VPN. Пятая граница — авторизация после успешного входа. Аутентифицированному пользователю всё ещё могут отказать в оболочке, команде, подсистеме или перенаправлении, и эти отказы выглядят как сбои для того, кто читает только последнюю строку клиента.

Last stage reachedWhat it provesWhere to look next
No TCP connectionNo SSH transport existsAddress, port, route, selectors, filter, listener
TCP up, exchange incompleteReachability is not the blockerServer response, negotiation, packet handling
Host identity rejectedThe peer is not the expected hostIndependently verified host key
User authentication rejectedThe attempt reached authenticationAccount, credential and server policy
Authenticated, session deniedLogin succeeded, the operation did notShell, command or forwarding permission

Остановитесь после пары неудачных попыток пароля. Повторные догадки создают блокировки, которые затем выглядят как второй, несвязанный сбой, и стоят больше времени, чем исходная заявка.

Откат и запись, которую вы ведёте

Меняйте по одной вещи за раз и записывайте, что изменили, прежде чем повторно тестировать. Если изменение ухудшает попытку, немедленно откатите его, а не наслаивайте ещё одну правку. Повторите исходную операцию из исходного клиента и контекста. Успешный вход с другой машины, в другом семействе адресов, не является воспроизведением и не доказывает исправление.

Очистите то, чем делитесь. Подробный вывод клиента может содержать внутренние имена, метки учётных записей, пути к ключам и идентификаторы открытых ключей, поэтому публикуйте поэтапный вывод, а не необработанный след.

Похожие статьи