Я администрирую сетевую среду, в которой пользователи проходят аутентификацию через NIS. Все машины могут быть использованы для SSH на сервер, кроме одного. На рассматриваемой машине я получаю сообщение
ssh: connect to host servername port 22: Connection refused
Я сравнил strace
результаты работы рассматриваемой машины и машины, которая может правильно подключиться к серверу по SSH.
Оказывается, машина, которая не может подключиться по SSH к серверу, не справляется, /etc/hosts
а машина, которая умеет правильно использовать SSH. Обе машины /etc/hosts
настроены с именем сервера и IP. В конце концов, машина, которая не обращается за консультацией, /etc/hosts
заканчивает тем, что пытается подключиться 127.0.0.1
(localhost) и завершается неудачно с вышеприведенным сообщением. Что может быть причиной этого?
Дополнительная информация:
- Сервер, к которому я пытаюсь подключиться по SSH, также действует как сервер имен, и обе машины обращаются к нему, пытаясь подключиться к нему по SSH.
- Компьютер, который не может подключиться к серверу по протоколу SSH, может правильно подключиться к другим компьютерам по протоколу SSH
ssh machinename
.strace
Журналы показывают, что компьютер обращается к серверу имен (на этот раз успешно) и ему удается правильно определить имя удаленного компьютера и подключиться к нему.
РЕДАКТИРОВАТЬ: Я с удовольствием предоставлю любую дополнительную информацию, которая, по вашему мнению, может помочь решить эту проблему.
Ответы:
Для меня это звучит так, как будто проблемный хост не настроен правильно
nsswitch.conf
.hosts
Линия/etc/nsswitch.conf
должна выглядеть примерно так:Тем не менее, точное содержание будет зависеть от вашей среды. Вы должны сравнить с работающими хостами и внести соответствующие изменения.
источник