Не удается подключиться по SSH с Mac OS ноутбука к одному хосту, но работает для всех других.

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

Работаю на Mac ноутбуке с OSX Sonoma 14.6.1.

Пытаюсь подключиться по SSH с Mac к Raspberry Pi, который я снова настроил. Этот Pi использовался некоторое время назад, и раньше я мог подключаться к нему по SSH.

Обновил Raspberry Pi и проверил, что SSH работает. Я могу подключиться к Pi по SSH с других устройств в той же сети. Просто не могу подключиться к нему с Mac ноутбука.

Если я пытаюсь подключиться по SSH с ноутбука, получаю ssh: connect to host xxx.xxx.1.xxx port 22: Connection refused

С этого же Mac ноутбука я могу подключаться по SSH к другим устройствам, так что никакого блокирования файерволом нет

Если я запускаю с -vvv для отладки, получаю:

debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: /etc/ssh/ssh_config line 21: include /etc/ssh/ssh_config.d/* matched no files debug1: /etc/ssh/ssh_config line 54: Applying options for *
debug2: resolve_canonicalize: hostname xxx.xxx.1.xxx is address
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/Users/Chris/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/Users/Chris/.ssh/known_hosts2'
debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
debug3: channel_clear_timeouts: clearing
debug3: ssh_connect_direct: entering debug1: Connecting to xxx.xxx.1.xxx [192.168.1.248] port 22.
debug3: set_sock_tos: set socket 3 IP_TOS 0x48 debug1: connect to address xxx.xxx.1.xxx port 22: Connection refused ssh: connect to host xxx.xxx.1.xxx port 22: Connection refused

Пробовал подключаться по SSH через разные приложения – Terminal, Termius и Hyper, но одна и та же проблема блокирует это конкретное соединение.

Пробовал изменить IP Raspberry Pi, но это не изменило ситуацию.

Убедился, что могу подключаться по SSH к другим устройствам с Mac ноутбука без проблем.

Проверил, что SSH работает на Pi и подключался с других машин.

Запустил traceroute, и это один маршрут от моего ноутбука к Pi

Ожидаю возможности подключиться по SSH к Pi, как это было ранее, и как могу с другими устройствами

Обновление, попытка посмотреть логи:

`Mar 11 15:44:01 raspberrypi polkitd(authority=local): Registered Authentication Agent for unix-process:4151:521958 (system bus name :1.63 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_AU)
`Mar 11 15:44:10 raspberrypi polkitd(authority=local): Operator of unix-session:6 successfully authenticated as unix-user:USERNAME to gain TEMPORARY authorization for action org.freedesktop.systemd1.manage-units for system-bus-name::1.64 [systemctl restart ssh] (owned by unix-user:USERNAME)
`Mar 11 15:44:10 raspberrypi sshd[652]: Received signal 15; terminating.
`Mar 11 15:44:10 raspberrypi sshd[4162]: Server listening on 0.0.0.0 port 22.
`Mar 11 15:44:10 raspberrypi sshd[4162]: Server listening on :: port 22.
`Mar 11 15:44:10 raspberrypi polkitd(authority=local): Unregistered Authentication Agent for unix-process:4151:521958 (system bus name :1.63, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_AU) (disconnected from bus)
`Mar 11 15:44:40 raspberrypi sudo: USERNAME : TTY=pts/0 ; PWD=/var/log ; `USER=root ; COMMAND=/usr/bin/cat /var/log/auth.log
`Mar 11 15:44:40 raspberrypi sudo: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)

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

Ваша проблема с невозможностью подключения через SSH с ноутбука Mac к Raspberry Pi, учитывая, что другие подключения по сети работают без проблем, может быть вызвана несколькими факторами. На основе представленных данных и информации о системе, давайте подробно разберем возможные причины этой проблемы и пути их решения.

Теория

SSH (Secure Shell) является протоколом, который позволяет безопасно подключаться к удаленному компьютеру через незащищенные сети. Когда вы получаете ошибку "Connection refused", это обычно означает, что сервер не принимает количество подключений на указанный порт (в данном случае порт 22, который предопределен для SSH).

Проблема "Connection refused" может возникнуть из-за:

  1. Сетевой конфигурации: Например, маршрутизация между вашим Mac и Raspberry Pi может быть неправильно настроена.
  2. Конфигурации SSH-сервера: Возможно, сервер SSH на Raspberry Pi не настроен для прослушивания подключений на нужном IP-адресе или порте.
  3. Брандмауэров на самом Mac: Несмотря на уверенность в отсутствии блокировки, брандмауэр Mac может блокировать исходящие соединения на определенные адреса.
  4. Ошибок в конфигурации клиента SSH на Mac: Может быть некорректная настройка на стороне клиента SSH, препятствующая подключению.
  5. Неправильной маршрутизации UDP и TCP: Это может быть проблемой, если на сети используются сложные маршруты.
  6. Ошибок во временной конфигурации: Иногда время на двух устройствах не синхронизировано, что может повлиять на некоторые аспекты SSH (особенно если используется ключевое шифрование с временными метками).

Примеры

Из ваших логов можно выделить несколько важных аспектов:

  • Raspberry Pi производит корректный запуск SSH-сервера, что подтверждается строками из логов "Server listening on 0.0.0.0 port 22." и "Server listening on :: port 22." Это говорит о том, что SSH-сервер активен и прослушивает соединения на всех интерфейсах (IPv4 и IPv6).

  • Лог о попытке подключения из Mac показывает "ssh: connect to host xxx.xxx.1.xxx port 22: Connection refused", что указывает на то, что соединение отклоняется на уровне сети или самого сервера Raspberry Pi.

Применение

Теперь давайте рассмотрим шаги, которые можно предпринять для решения этой проблемы:

  1. Проверка конфигурации SSH-сервера:

    • Проверьте файл конфигурации /etc/ssh/sshd_config на Raspberry Pi. Убедитесь, что строки Port 22 и ListenAddress, если есть, указаны правильно.
  2. Проверка сетевой конфигурации:

    • Убедитесь, что ваш Mac действительно пытается подключиться к правильному IP-адресу Raspberry Pi. Для этого используйте команды ping и arp для проверки соответствия IP и MAC-адресов.
    • Проверьте таблицу маршрутизации на Mac с помощью команды netstat -nr или route -n и убедитесь, что для доступа к Raspberry Pi используется правильный маршрут.
  3. Диагностика с использованием сетевых инструментов:

    • Убедитесь, что порт 22 действительно открыт и доступен на Raspberry Pi, используя инструменты nmap или telnet из другого устройства в сети.
    • Проверьте, нет ли конфликтующих правил на Mac с помощью команды sudo pfctl -sr.
  4. Брандмауэр Mac:

    • Перепроверьте настройки брандмауэра на Mac. Откройте System Preferences > Security & Privacy > Firewall и перейдите в Firewall Options. Убедитесь, что программы и сервисы, связанные с SSH, не заблокированы.
  5. Логи и журналирование:

    • Проверьте, нет ли дополнительных сообщений об ошибках в логах /var/log/auth.log и /var/log/syslog на Raspberry Pi сразу после попытки подключения из Mac. Это может дать подсказки о ненастроенных правах или других проблемах.
  6. Повторные попытки с логированием:

    • Попробуйте увеличить уровень логирования SSH на Raspberry Pi для получения более детальной информации о каждом подключении. Для этого в файле /etc/ssh/sshd_config измените параметр LogLevel на DEBUG3, затем перезапустите SSH-сервис.
  7. Удаление известного хоста:

    • На Mac удалите старую запись о Raspberry Pi в файле known_hosts: sed -i.bak "/xxx.xxx.1.xxx/d" ~/.ssh/known_hosts.

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

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

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

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