SSH не спешит устанавливать соединение [дублировать]

25

Я только что установил Ubuntu 11.10, и всякий раз, когда я пытаюсь подключить SSH к своим серверам, он очень медленный. Перед отображением запроса пароля может пройти от 40 до 60 секунд.

Я использую:

ssh myuser@myserver.com

После того, как я вошел в систему, все в порядке и работает быстро.

Почему это занимает так много времени, и как я могу это исправить? Есть ли какие-либо параметры в команде SSH, которые я могу использовать?

Joel
источник

Ответы:

44

Это медленно, потому что демон OpenSSH использует DNS для запуска обратного поиска по имени хоста клиента, чтобы убедиться, что оно корректно

sudo vi /etc/ssh/ssh_config

Закомментируйте следующие строки

#GSSAPIAuthentication yes
#GSSAPIDelegateCredentials no

ИЛИ

Добавь это:

UseDNS no
Книга Зевса
источник
6
Существует файл sshd_config для стороны сервера и ssh_config для стороны клиента. Установка этих параметров на клиенте и сервере в файле ssh_config мне не помогла. Только после того, как я установил GSSAPIAuthentication noи GSSAPIDelegateCredentials yesдобавил UseDNS noв файл sshd_config сервера, он ускорил соединение для меня.
metakermit
1
Нет ли в этом смысла для безопасности?
TheStoryCoder
@TheStoryCoder хороший вопрос, мне придется перепроверить, ты вызвал мое любопытство сейчас ...
Книга Зевса
1
После добавления UseDNS no, я получил, Bad configuration option: usednsкогда я попытался войти в систему через ssh другой сервер.
Каспер
1
Попробуйте установить UseDNSна noв /etc/sshd_configили /etc/ssh/sshd_config. НЕ /etc/ssh_config!
Ю Цзяо
13

Это всего лишь дополнение к ответу Книги Зевса. Если у вас нет root-доступа (sudo), вы все равно можете его настроить.

Вам нужно отредактировать ваш файл "user ssh_config":

vi $HOME/.ssh/config

(Примечание: вам придется создать каталог $ HOME / .ssh, если он не существует)

И добавить:

Host *
  GSSAPIAuthentication no
  GSSAPIDelegateCredentials yes

Вы можете сделать это для каждого хоста, если требуется :) пример:

Host linux-srv
  HostName 192.158.1.1
  GSSAPIAuthentication no
  GSSAPIDelegateCredentials yes

Убедитесь, что IP-адрес соответствует IP вашего сервера. Одним из замечательных преимуществ является то, что теперь ssh обеспечит автозаполнение для этого сервера. Таким образом, вы можете ввести ssh lin+, Tabи он должен автозаполнить до ssh linux-srv.

Вы можете добавить несколько полезных опций, чтобы вам не приходилось каждый раз вводить их:

User <a user>
Port <a port number>
IdentityFile <a specific private key>
Compression yes
....

Таким образом, вместо ssh -C -p 1022 -i ~/.hidden/prv-key-4096bit superuser@192.158.1.1простого набора ssh linux-srvбудет достаточно!

Гюйгенс
источник