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

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

Во-первых, я знаю, что этот вопрос задавали миллион раз, и я прочитал все, что смог найти, и до сих пор не могу решить проблему.

Я сталкиваюсь с этой проблемой, когда ssh'ing с моего Mac на мой сервер Ubuntu при новой установке Ubuntu (я переустановил из-за этой проблемы).

У меня SSH-порт сопоставлен с 7070, потому что мой интернет-провайдер блокирует 22.

На клиенте:

bash: ssh -p 7070 -v me@address.org
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to address.org port 7070. 
debug1: Connection established. 
debug1: identity file /home/me/.ssh/identity type -1
debug1: identity file /home/me/.ssh/id_rsa type 1
debug1: identity file /home/me/.ssh/id_dsa type -1
ssh_exchange_identification: Connection closed by remote host

Вот что я сделал, чтобы попытаться решить проблему:

Убедился, что мой maxstartups нормально:

bash: grep MaxStartups /etc/ssh/sshd_config
#MaxStartups 10:30:60

Когда я бегу telnet localhost, Я получаю это:

telnet localhost
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

Когда я запускаю / usr / sbin / sshd -t

Could not load host key: /etc/ssh/ssh_host_rsa_key  
Could not load host key: /etc/ssh/ssh_host_dsa_key  

Когда я регенерирую ключи с помощью

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key  
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key  

Я получаю ту же ошибку.

Я почти уверен, что проблема именно в этом. Кто-нибудь может помочь?

Я начал получать эту ошибку сразу после того, как отредактировал /etc/hosts.allow.

Смотрите, прежде чем я исправил и после.

перед

ALL: 192.168.1 notice no period after 192.168.1

ssh_exchange_identification: Connection closed by remote host

После

ALL: 192.168.1. see the extra period after 192.168.1.

fred@192.168.1.122's password:
Welcome to Linux Mint 11 Katya (GNU/Linux 2.6.38-8-generic i686)

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

Измените свой .ssh/config файл

из:

Host *.kd.io User myusername ProxyCommand ssh %r@ssh.koding.com nc %h %p

кому:

Host *.kd.io
    User myusername
    ProxyCommand ssh myusername@ssh.koding.com nc %h %p

Обратите внимание на 2 вещи:

  1. 3 строки вместо 1, последние 2 строки с 4 пробелами в качестве отступа
  2. чтобы избежать ошибки percent_expand: unknown key %r Я изменился %r на мое имя пользователя

Я использую Centos6

Скорее всего, я могу придумать, что спасет вас там, где вы были, о чем вы еще не говорили, что проверили, - это владение вашим файлом authorized_keys. Проверь это /home/me/.ssh/ - 700, а файлы внутри - 600 (недоступны для группы) и принадлежат «мне». Пытаться -vvv для более подробного объяснения того, что именно делает ssh в этот момент.

Убедитесь, что вы бежите sshd -t как корень. Я получаю сообщение об ошибке «Не могу открыть ключ хоста», если запускаю его как пользователь. В противном случае убедитесь, что / etc / ssh / ssh_host _ * _ ключ root: root и 600, а ключи .pub - root: root 644

Я думаю, что selinux разобрался бы с нестандартным портом еще до того, как вы смогли к нему подключиться, но на всякий случай проверьте /var/log/audit.log, если selinux включен.

how_to_generate_keygen:

$ ssh-keygen -t dsa -P “” -f ~/.ssh/id_dsa

Попробуйте выполнить приведенную выше команду обычным пользователем или пользователем root.

Удачи.

Вы можете получить "ssh_exchange_identification: соединение закрыто удаленным хостом", если ваш sshd сервис не работает!

Если у вас есть доступ к проверке сервера, у вас есть sshd служба работает с:

  ps aux | grep ssh

и убедитесь, что он прослушивает порт 22:

 netstat -plant | grep :22

подробнее здесь