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

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

Проблема неожиданно появилась после простого apt-get install kubuntu-desktop и некоторые незначительные проблемы, связанные с KDE, на моем Ubuntu 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, так что меня это больше не волнует... но это может быть связано)

2 ответа

Решение

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

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

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

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

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

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

РЕДАКТИРОВАТЬ: Существует абсолютно никоим образом 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 
Другие вопросы по тегам