Назад | Перейти на главную страницу

Из ниоткуда ssh_exchange_identification: соединение закрыто удаленным хостом

Я запускаю Ubuntu 10.10 на удаленном компьютере. Я использую ssh каждый день без проблем, но сегодня совершенно неожиданно я получаю следующую ошибку:

ssh_exchange_identification: Connection closed by remote host

Если я свяжусь с -vv, Я получаю следующее:

OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /Users/bla/.ssh/config
debug1: Applying options for ubuntu-server
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to ubuntu-server.com [123.123.123.123] port 22.
debug1: Connection established.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug2: key_type_from_name: unknown key type '-----END'
debug1: identity file /Users/bla/.ssh/id_rsa type -1
debug1: identity file /Users/bla/.ssh/id_rsa-cert type -1
ssh_exchange_identification: Connection closed by remote host

Если я удалю ключ, я получу точно такой же результат (без «debug2: key_type _...). Мне удалось войти в систему физически и проверить свой hosts.allow и hosts.deny но в них нет записей. Пробовал удалить и переустановить OpenSSH, проверил authorized_keys и ~/.ssh разрешения и попытался подключиться с других компьютеров только для получения той же ошибки. Я в своем уме, любая помощь будет принята с благодарностью.

Для меня в CentOS7 это было вызвано множеством попыток входа в систему с использованием грубой силы в сочетании с настройкой по умолчанию MaxStartups для sshd.

Страница руководства для sshd_config говорит следующее:

MaxStartups

Задает максимальное количество одновременных неаутентифицированных подключений к демону SSH. Дополнительные подключения будут сброшены до тех пор, пока аутентификация не будет успешной или не истечет время LoginGraceTime для подключения. По умолчанию - 10.

В качестве альтернативы можно включить случайное раннее отключение, указав три значения, разделенные двоеточием, «start: rate: full» (например, «10:30:60»). sshd (8) будет отклонять попытки подключения с вероятностью '' rate / 100 '' (30%), если в настоящее время существуют '' start '' (10) неаутентифицированные подключения. Вероятность возрастает линейно, и все попытки подключения отклоняются, если количество неаутентифицированных подключений достигает «полного» (60).

Установка начального значения на 25 (например, MaxStartups 25:30:100) в /etc/ssh/sshd_config решил вопрос.

Та же ошибка

ssh_exchange_identification: соединение закрыто удаленным хостом

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

Например, если какой-либо из закрытых ключей

  • ssh_host_key
  • ssh_host_dsa_key
  • ssh_host_rsa_key

в /etc/ssh/ являются chmod 644 (должно быть chmod 600).

Следующие разрешения приводят к ошибке «ssh_exchange_identification: соединение закрыто удаленным хостом»:

root@host:/etc/config/ssh# ls -la
drwxrwxrwx    2 root     root            0 Aug 24  2005 .
drw-rw-rw-    3 root     root            0 Apr  3  2007 ..
-rw-r--r--    1 root     root        88039 Aug 24  2005 moduli
-rw-r--r--    1 root     root         1559 Aug 24  2005 ssh_config
-rw-r--r--    1 root     root          668 Aug 24  2005 ssh_host_dsa_key
-rw-r--r--    1 root     root          599 Aug 24  2005 ssh_host_dsa_key.pub
-rw-r--r--    1 root     root          524 Aug 24  2005 ssh_host_key
-rw-r--r--    1 root     root          328 Aug 24  2005 ssh_host_key.pub
-rw-r--r--    1 root     root          883 Aug 24  2005 ssh_host_rsa_key
-rw-r--r--    1 root     root          219 Aug 24  2005 ssh_host_rsa_key.pub
-rw-r--r--    1 root     root         2018 Aug 25  2005 sshd_config

Исправлены разрешения, теперь подключения должны приниматься:

root@host:/etc/config/ssh# ls -la                    
drwxrwxrwx    2 root     root            0 Aug 24  2005 .
drw-rw-rw-    3 root     root            0 Apr  3  2007 ..
-rw-r--r--    1 root     root        88039 Aug 24  2005 moduli
-rw-r--r--    1 root     root         1559 Aug 24  2005 ssh_config
-rw-------    1 root     root          668 Aug 24  2005 ssh_host_dsa_key
-rw-r--r--    1 root     root          599 Aug 24  2005 ssh_host_dsa_key.pub
-rw-------    1 root     root          524 Aug 24  2005 ssh_host_key
-rw-r--r--    1 root     root          328 Aug 24  2005 ssh_host_key.pub
-rw-------    1 root     root          883 Aug 24  2005 ssh_host_rsa_key
-rw-r--r--    1 root     root          219 Aug 24  2005 ssh_host_rsa_key.pub
-rw-r--r--    1 root     root         2018 Aug 25  2005 sshd_config

Это почти наверняка /etc/hosts.deny файл имеет запись для вашей машины, добавьте

sshd: xxx.yyy.zzz.aaa

для вашего IP-адреса подключения к /etc/hosts.allow

-rw------- 1 user group 405 2011-10-29 10:20 authorized_keys2

authorized_keys2 является устарел с версии 3.0.

debug3: Not a RSA1 key file /Users/bla/.ssh/id_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace

Похоже, ваш закрытый ключ поврежден. Восстановите пару ключей, используйте ssh-copy-id установить ваш открытый ключ в authorized_keys файл и попробуйте еще раз.

Может ли быть новый брандмауэр, который что-то делает? Однажды я столкнулся с проблемой, когда в новом брандмауэре, который был представлен, была точно такая же проблема. Новый брандмауэр был представлен на стороне серверов.

Здесь может быть пара проблем.

  1. Настроен ли сервер на ограничение принимаемых типов аутентификации? Это можно установить с помощью различных *Authentication директивы в вашем sshd_config файл.
    • Если вы используете PAM для аутентификации, проверьте его конфигурацию
  2. Похоже, ваш ключ имеет другой формат. Проверьте ssh-keygen -e -i и -m флаги.