SSH по ключу невероятно медленно

SSH по ключу невероятно медленно

SSH-подключение с ключом с моей машины внезапно стало невероятно медленным (~10 сек!). Насколько я могу судить, это не проблема сервера или DNS.

Проблема внезапно возникла после простого apt-get install kubuntu-desktopи незначительного вмешательства в работу KDE, на моемУбунту 15.04 x86_64.

Запуск ssh -vv ...показал мне, что он ждет целую вечность (большую часть из ~10 секунд...) на последней строке отсюда:

OpenSSH_6.7p1 Ubuntu-5ubuntu1, OpenSSL 1.0.1f 6 Jan 2014 debug1: Reading configuration data /home/neuronq/.ssh/config debug1: /home/neuronq/.ssh/config line 1: Applying options for XXX.com debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for *

...и мой /etc/ssh/ssh_configсодержит это (я не вставлял закомментированные строки):

Host *
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication no
    GSSAPIDelegateCredentials no

Может ли установка Kubuntu для рабочего стола каким-либо образом внезапно привести к такому замедлению (какая-то странная штука с хранилищем ключей/кошельком)?(Кроме того, в KDE я вообще не мог заставить работать вход по ssh по ключу, за исключением терминала, где мне пришлось вручную выполнить ssh-addпредварительную настройку и ввести парольную фразу ключа, но с тех пор я полностью отказался от KDE и вернулся к Unity, так что меня это больше не волнует... но это может быть связано)

решение1

У вас такие же проблемы с аутентификацией по паролю или это действительно связано с аутентификацией по ключу?

Ваш клиент может обеспечить правильное разрешение DNS, но именно ваш сервер в любом случае попытается выполнить обратный поиск с вашего IP-адреса; это может объяснить задержку, как говорит @kasperd. Но по опыту это не превышает нескольких секунд.

SSH в конце концов успешно проходит аутентификацию? Если да, то это действительно похоже на проблему DNS. Попробуйте, если ваша конфигурация/администратор разрешает, добавить ваш IP/имя хоста в /etc/hosts сервера. Это обойдет разрешение DNS на стороне сервера. Если вы не настроите свой DNS для предоставления надлежащего обратного поиска на стороне сервера для клиента, useDNS noэто, как говорит @kasperd, должно быть помещено на /etc/ssh/sshd_configсервере.

Если ваш администратор этого не сделает, то вы больше ничего не сможете сделать.

EDIT: KDE/Unity или любой другой менеджер рабочего стола не может привести к такому замедлению. Я был бы крайне удивлен, если бы это было так. Однако тот факт, что вам нужно предоставить ssh-addключи для использования, интересен. Эта команда используется для того, чтобы ваш агент аутентификации запомнил парольные фразы, которые вы указали для своих ключей. Чтобы указать ключ, который будет использоваться, сделайте это либо в командной строке, либо в вашем ~/.ssh/configфайле:

# in your command line:
ssh -i /path/to/your/private/key user@host

# or in your /home/$user/.ssh/config file:
# (on command line later, simply use ssh user@host or ssh host if
# user locally and remotely are the same
Host $myhost
    IdentityFile /path/to/your/private/key
    IdentitiesOnly yes 

решение2

Для меня фактическим решением было добавление AddressFamily inetмоего локального хоста либо ~/.ssh/configдля соответствующего хоста, либо /etc/ssh/ssh_configдля Host *.

Причиной проблемы, скорее всего, стало недавнее обновление до Ubuntu 15.05, и теперь ssh пытался (но безуспешно, с большой задержкой...) использовать IPv6.

Связанный контент