6

У меня есть машина Cygwin, которая запускает sshd. Когда я пытаюсь войти в систему с помощью SSH, требуется некоторое время, чтобы получить ответ.

С помощью команды ssh -v user@cygwin я вижу, что есть две команды, которые занимают минуты.

debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to pspc [10.0.40.177] port 22.
debug1: Connection established.
debug1: identity file /Users/smcho/.ssh/identity type -1
debug1: identity file /Users/smcho/.ssh/id_rsa type -1
debug1: identity file /Users/smcho/.ssh/id_dsa type -1 <---

А также

debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.2
debug1: SSH2_MSG_KEXINIT sent <---

После некоторого Googling, я думаю, что это вызвано тем, что порт 113 Windows был перекинут. (http://www.cygwin.com/ml/cygwin/2009-03/msg00380.html)

Как я могу решить эту проблему? Как я могу вернуться с identify и SSH2_...IT sent быстро?

2 ответа2

4

Помимо открытия порта 113 IDENT отношению к клиенту SSH (так что сервер может попытаться подключиться к нему), вам может повезти, добавив UseDNS no в sshd_config .

И я сомневаюсь, что это поможет вам (клиент знает, где найти сервер, так что это не 1-й маркер, вы пробовали 2-й маркер, и задержки превышают 10 секунд, поэтому другие маркеры не применяются), но для В архивах FAQ по OpenSSH говорится:

ssh(1) занимает много времени для подключения или входа

Большие задержки (более 10 секунд) обычно вызывают проблемы с разрешением имен:

  • Некоторые версии glibc (в частности, glibc 2.1, поставляемый с Red Hat 6.1) могут занять много времени для разрешения адресов "IPv6 или IPv4" из доменных имен. Это можно обойти, указав AddressFamily inet в ssh_config . [На клиенте; AvB.]
  • Возможно, проблема с поиском DNS на клиенте или сервере. Вы можете использовать команду nslookup, чтобы проверить это как на клиенте, так и на сервере, просмотрев имя и IP-адрес другого конца. Кроме того, на сервере ищите имя, возвращаемое поиском IP-имени клиента. Вы можете отключить большинство поисков на стороне сервера, установив UseDNS no в sshd_config . [На сервере AvB.]

Задержки менее 10 секунд могут иметь другие причины.

  • В выпусках OpenSSH, предшествующих 3.8, был файл moduli с модулями, которые были чуть меньше, чем то, что ищет sshd, и в результате sshd использовал модули, значительно превышающие запрашиваемые, что приводило к снижению скорости. Замена файла moduli решит эту проблему (обратите внимание, что в большинстве случаев этот файл не будет заменен во время обновления и должен быть заменен вручную).
  • Релизы OpenSSH до 3.8 имели недостаток в ssh , из-за которого он запрашивал модули больше, чем предполагалось (что в сочетании с вышеупомянутым приводило к значительным замедлениям). Обновление клиента до версии 3.8 или выше решит эту проблему.
  • Если либо на клиенте, либо на сервере отсутствует основанное на ядре устройство для работы со случайными числами (например, Solaris <9, AIX <5.2, HP-UX <11.11) и нет замены (например, prngd), возможно, что одна из программ, вызываемых ssh-rand-helper для генерации энтропии висит. Это можно проверить, запустив его в режиме отладки:

    /usr/local/libexec/ssh-rand-helper -vvv

    Любые существенные задержки должны быть исследованы и исправлены, или соответствующие команды должны быть удалены из ssh_prng_cmds.

1

Я испытываю медлительность в первом случае, о котором вы упомянули.

debug1: identity file /Users/smcho/.ssh/id_dsa type -1 <---

Моя версия OpenSSH была 5.1. Я удалил старую установку и установил Cygwin OpenSSH 5.5, скорость issus пошла. Может быть, вы могли бы попробовать это ..

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