3

Я поддерживаю коллегу, который недавно обновил свой MacBook Pro до High Sierra с Sierra. Он пытается подключиться к одному из наших ящиков в поле через ssh. У рассматриваемой коробки есть адрес IPv6.

Файл ~/.ssh/config пуст и ключи ssh не изменились. Файл /etc/ssh/ssh_config является установленным по умолчанию на MBP. Dig отлично работает и сообщает правильный IPv6-адрес коробки. Пинг6 тоже работает как положено. Он может подключиться к нашему внутреннему git-серверу, который публикуется через DNS с IPv4-адресом, и выдвигать и извлекать без проблем.

Когда я получаю его по ssh к коробке, вот так:

ssh user@hostname

Сбой соединения с:

ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known

Добавление -vvvv к ssh приводит к следующему выводу:

ssh -vvvv [hostname]
OpenSSH_7.6p1, LibreSSL 2.6.2
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to [hostname] port 22.
ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known

Если он подключается к устройству с использованием адреса IPv6, подключение будет установлено успешно, и он сможет войти в систему.

Наши DNS-серверы правильно настроены и обслуживают адреса, как и ожидалось. Я нахожусь на MBP с Сьеррой, и у меня нет проблем с подключением. Кроме того, наша группа использует Macbook различных версий и версий ОС (никаких других пользователей High Sierra), и пока он единственный, кто столкнулся с этой проблемой.

РЕДАКТИРОВАТЬ: Мы попробовали решение, представленное здесь. Но защита целостности системы Apple помешала. Я не собираюсь выключать его в этот момент. Я хотел бы оставить это в качестве последнего средства.

1 ответ1

4

Вот обходной путь, который помог в этом случае:

# install openssh from brew
brew install openssh

# /usr/local/sbin shouldn't be writable on High Sierra (by default), 
# so brew will fail to link the ssh binary

brew unlink openssh
ln -s /usr/local/Cellar/openssh/<version of openssh>/bin/ssh /usr/local/bin/ssh

Это связано с версией ssh, которую можно использовать. Мой коллега теперь может подключиться, как и ожидалось. Поскольку на его Mac теперь есть две версии ssh, важно убедиться, что версия openssh, установленная через brew, сначала найдена в PATH, например.

PATH=/usr/local/bin:/usr/bin

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .