“Доступ запрещен” для SSH с портовым форвардингом на Windows, когда все работает нормально, если я использую частный адрес без портового форвардинга.

Вопрос или проблема

На Windows 10 я настроил сервер OpenSSH.

В брандмауэре я разрешил входящий порт 22 следующим образом:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -Program "C:\Windows\System32\OpenSSH\sshd.exe"

Когда я использую свой частный IP-адрес с портом 22 для подключения к этому серверу по ssh, все работает.

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

Попытка подключения по ssh к порту 22 публичного IP-адреса через Putty заставляет ввести пароль, так что, похоже, переадресация портов сработала.

Однако, когда я ввожу свой пароль, появляется сообщение “Доступ запрещен”.

Для проверки я убрал переадресацию портов и снова попытался подключиться по ssh только с моим частным адресом, и это точно работает.

У меня есть подозрение, что мне нужно сделать что-то дополнительное в брандмауэре Windows, но я не уверен.

Ответ или решение

Для решения проблемы "Access Denied" при подключении к OpenSSH серверу на Windows 10 через SSH с использованием переадресации портов, можно рассмотреть несколько возможных причин и решений.

Проблемы и решения

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

  2. Настройки SSH-сервера: Проверьте файл конфигурации вашего SSH-сервера, который обычно находится по пути C:\ProgramData\ssh\sshd_config. Убедитесь, что в нем отсутствуют ограничения на вход для удаленных пользователей. Например, параметры AllowUsers могут ограничивать доступ только к определенным пользователям.

  3. Заблокированные IP-адреса: Проверьте, не заблокирован ли ваш внешний IP-адрес в Windows Firewall или других средствах безопасности. Нужно убедиться, что в правилах брандмауэра нет ограничений на доступ по вашему публичному IP.

  4. Дополнительные правила брандмауэра: Возможно, потребуется создать дополнительные правила в Windows Firewall для разрешения входящего трафика не только на локальный IP адрес, но и на публичный. Попробуйте добавить правило с разрешением для всех IP на порт 22:

    New-NetFirewallRule -Name "SSH Public Access" -DisplayName "Allow SSH from Public" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
  5. Проблемы с NAT: Возможны проблемы с NAT на уровне роутера. Проверьте, что у вас правильно настроена переадресация портов с вашего публичного IP на локальный.

  6. Проверка журналов: Посмотрите журналы событий Windows, а также логи SSH-сервера, они могут содержать подсказки о том, почему возникла ошибка "Access Denied". Логи SSH обычно находятся в C:\ProgramData\ssh\logs.

  7. Обновление OpenSSH: Убедитесь, что вы используете последнюю версию OpenSSH для Windows. Иногда обновления могут содержать исправления для известных проблем с безопасностью и связью.

  8. Тестирование локально: Попробуйте проверить соединение с другого устройства в той же локальной сети с использованием публичного IP-адреса. Это поможет выяснить, связана ли проблема с конфигурацией сети или роутера.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...