ssh-ing in to ubuntu comp по имени хоста внезапно перестает работать (`Не удалось разрешить имя хоста [ubuntu_comp_hostname]: имя или служба неизвестны`)

(см. EDIT добавлено в конец, бой avahi)


Он просто делает следующее:
> ssh -v [ubuntu_comp_hostname] .local =>

    OpenSSH_8.2p1, LibreSSL 3.0.2  
    debug1: Reading configuration data /home/o1/.ssh/config  
    debug1: Reading configuration data /etc/ssh/ssh_config  
    debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling  
    ssh: Could not resolve hostname [ubuntu_comp_hostname].local: Name or service not known  

(Например, это даже не началось после перезагрузки или разбудить один из компьютеров от сна или что-то в этом роде.Он работал, я встал на несколько минут, чтобы выпить чаю, вернулся, а он внезапно перестал работать.)


Я все еще могу использовать ssh, используя IP компьютера ubuntu
(
т.е. вместо [ubuntu_comp_hostname ] .local )
- это IP-адрес, который я получаю, выполнив эту команду:
ifconfig | sed -En 's / 127.0.0.1 //; s /.* inet (адрес:)? (([0-9] * \.) {3} [0-9] *). * / \ 2 / p '
(Я скопировал его откуда-то, что забыл, и какое-то время он висел под псевдонимом)
)


Я все еще могу подключиться по ssh к другому компьютер из компьютера ubuntu, используя имя хоста другого компьютера.


И меня очень сбивает с толку,
Я запускаю синергетический клиент на компьютере ubuntu,
, и клиент и сервер соединяются, используя имена хостов двух компьютеров. ,
и , что по-прежнему работает нормально
(я просто отключил и перезапустил синергию на обоих компьютерах, чтобы проверить, и да, он снова подключился нормально. )


Понятия не имею: с чего начать отладку?



РЕДАКТИРОВАТЬ (скопировано из моих комментариев ниже) :

Я только что попробовал ps -eo cmd | grep avahi и обнаружил (помимо avahi-daemon: chroot helper )
this:
avahi-daemon: running [ubuntu_comp_hostname-2.local] .
(т. Е. В конце имени хоста без видимой причины есть лишнее -2 ).
((Попытка подключиться к ssh ubuntu_comp_hostname-2.local работает .))

Я совершенно не разбираюсь во всем этом, но я ' я догадываюсь, что ...

  • avahi сломался или перезапустился, или что-то в этом роде?

  • А затем он попытался запустить как обычный [ubuntu_comp_hostname.local] ,
    , но он все еще висел в несуществующем состояние или что-то в этом роде,
    , чтобы он автоматически добавил -2 в конец фактического имени хоста?

И да, sudo service avahi-daemon restart сработало
- то есть больше нет -2 ,
и все снова подключается через hostname.local, как и ожидалось
{{1 }} (хотя я удалил файл ~ / .ssh / config , добавив его в качестве обходного пути, как рекомендовано (раньше такого файла не было))

Мне все еще интересно, что вызвало проблема в первую очередь,
и как предотвратить ее повторение
(или, по крайней мере, заставить ее автоматически исправить себя?)

1
задан 30 March 2021 в 08:33

1 ответ

EDIT

Причина проблемы

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

  1. Отправьте содержимое /etc/hosts, /etc/resolv.conf /etc/nsswitch.conf.
  2. Разместить содержимое ${HOME}/.ssh/config. Попробуйте удалить (для вопросов конфиденциальности) как можно меньше.
  3. Переименуйте config и попробуйте ssh-ing. Опубликуйте результат.
  4. Попробуйте подключиться, не используя .local, используя как IP, так и имя сервера. Сообщите результат.
  5. Укажите, какая у вас конфигурация сети... 1) Где находятся подключаемые машины? 2) Какой DNS?
  6. Попробуйте имя_хоста_оф_ubuntu_comp. Опубликуйте результат.
  7. Дальнейшая отладка с помощью ssh -vvv ... . Отправить результат.
  8. Отправьте результат netstat -plunt | grep 22 на сервер.
  9. Отправляйте выходные данные systemctl status ssh на сервер.

Связанный:

  1. Что делает ".local"?
  2. https://serverfault.com/questions/831747/why-is-ssh-not-resolving-this-hostname/831769
  3. https://stackoverflow.com/questions/20252294/ssh-could-not-resolve-hostname-hostname-nodename-nor-servname-provided-or-n
  4. https://docstore.mik.ua/orelly/networking_2ndEd/ssh/ch12_01.htm

Способ заставить его работать

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

$ ssh user_at_server@10.20.10.10

Тогда убедитесь в ${HOME}/. ssh/config в вашем клиенте есть следующие строки (последние две удобны, но необязательны)

Host server_user
  HostName      10.20.10.10
  User          user_at_server
  ServerAliveInterval 30
  ForwardX11 yes

Затем убедитесь, что назначены правильные атрибуты:

$ chmod 0664 ${HOME}/.ssh/config
$ chmod 0700 ${HOME}/.ssh

- теперь вы можете

$ ssh server_user
1
ответ дан 23 April 2021 в 23:29

Другие вопросы по тегам:

Похожие вопросы: