Когда я подключаюсь к своему серверу Debian через ssh, клиент ssh пытается установить соединение IPv6. Это завершается ошибкой по истечении длительного времени ожидания (~ 30 секунд), затем возвращается к IPv4, который затем успешно выполняется, и у меня запрашивается пароль.

Это довольно раздражает, потому что я часто скучаю по времени, которое я могу ввести пароль (время ожидания пароля кажется очень коротким по сравнению с этим), и мне приходится снова с этим сталкиваться.

Это происходит как в Windows через putty, так и на моей машине Debian с использованием стандартного клиента ssh.

Мне нравится это исправлять, либо работая с IPv6-соединением, либо напрямую через IPv4.

  • Как я могу узнать, почему я не могу подключиться через IPv6?
  • Как я могу настроить мой ssh-клиент для подключения через IPv4?

Вот как выглядит мой вывод ssh (изменил личные данные)

> ssh -v someuser@somedomain.com
OpenSSH_6.9p1 Debian-2, OpenSSL 1.0.2d 9 Jul 2015
debug1: Reading configuration data /home/someuser/.ssh/config
debug1: /home/someuser/.ssh/config line 12: Applying options for somedomain.com
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to somedomain.com [1234:1234:1234:1234::1] port 12345.

после этого ssh ждет ~ 30 секунд (как упоминалось выше), а затем возвращается к IPv4, и я могу войти в систему как обычно.

Обновить

Я провел некоторое тестирование, и я думаю, что сервер не настроен правильно для IPv6 (хотя ping6 ::1 и ssh -6 ::1 работали). Пока я буду настраивать мои ssh-клиенты для использования IPv4, пока не пойму, как исправить IPv6 на моем сервере.

2 ответа2

0

Это должно помочь вам отключить IPv6, что должно устранить эту задержку (путем принудительного использования IPv4 для всей системы): https://kb.iu.edu/d/aqig


Windows 7 и Vista

В меню «Пуск» выберите « Control Panel . Убедитесь, что вы находитесь в режиме просмотра больших или маленьких значков (Windows 7) или в классическом представлении (Vista).
Откройте Network and Sharing Center .
Слева выберите « Change adapter settings (Windows 7) или « Manage network connections (Vista).
Щелкните правой кнопкой мыши соединение, для которого вы хотите отключить IPv6, и выберите Properties .
Снимите флажок « Internet Protocol Version 6 (TCP/IPv6) и нажмите « OK .



В Linux на основе Debian: http://www.binarytides.com/disable-ipv6-ubuntu/
Отключить Ipv6 - Метод 1

Отредактируйте файл - /etc/sysctl.conf

$ sudo gedit /etc/sysctl.conf

И заполните следующие строки в конце этого файла

# IPv6 disabled
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Сохраните файл и закройте его

Перезапустите sysctl с помощью

$ sudo sysctl -p

Еще раз проверьте вывод ifconfig и не должно быть адреса ipv6

$ ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:5f:28:8b  
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1346 errors:0 dropped:0 overruns:0 frame:0
          TX packets:965 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1501691 (1.5 MB)  TX bytes:104883 (104.8 KB)

Если это не работает, попробуйте перезагрузить систему и еще раз проверить ifconfig.






Если вы не хотите отключать общесистемный IPv6, вы можете отключить его внутри PuTTY. Для получения подробной информации см. Http://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter4.html#config-address-family . Это должно быть под Панелью подключения -> Интернет-протокол. Установите это только для IPv4.

0

На мой взгляд, лучший подход - заставить все работать (а не обходить то, что не работает). Итак, исправьте IPv6.

Работает ли ping6/ping для IPv6? Можете ли вы ssh в "::1"? Разрешает ли правила брандмауэра входящий трафик на адрес IPv6?

Настроен ли обратный DNS? Если нет, то в OpenBSD FAQ об обратном DNS специально описывается это поведение в OpenSSH, и его можно изменить, настроив обратный DNS или добавив записи в файл /etc /hosts.

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

В этом руководстве говорится, что необходимо добавить UseDNS = no в файл sshd_config (и затем не забудьте перезагрузить конфигурацию с помощью sshd), а также запустить sshd с опцией "-u0".

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