Как исправить ошибку «ssh_exchange_identification: читай: сброс соединения по пиру»?


21

Я не могу подключиться к своему серверу через ssh, используя мой компьютер, но я могу подключиться к этому серверу через свой мобильный телефон, используя приложение termius. Я проверил /etc/hosts.allowи /etc/hosts.denyмои iptables, и я также искал Google, кажется, нет ответа подходит для этой проблемы. Я не знаю как это решить, вот ssh -v 183.17.228.80вывод

debug1: Connecting to 183.17.228.80 [183.17.228.80] port 22.
debug1: Connection established.=======================   
debug1: permanently_set_uid: 0/0   
debug1: SELinux support disabled  
debug1: key_load_public: No such file or directory    
debug1: identity file /root/.ssh/id_rsa type -1    
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_rsa-cert type -1      
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_dsa type -1   
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_dsa-cert type -1   
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_ecdsa type -1  
debug1: key_load_public: No such file or directory   
debug1: identity file /root/.ssh/id_ecdsa-cert type -1   
debug1: key_load_public: No such file or directory  
debug1: identity file /root/.ssh/id_ed25519 type -1   
debug1: key_load_public: No such file or directory  
debug1: identity file /root/.ssh/id_ed25519-cert type -1  
debug1: Enabling compatibility mode for protocol 2.0  
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2   
ssh_exchange_identification: read: Connection reset by peer

Я могу пинговать этот сервер, вот телнет

telnet 183.17.228.29 22  
Trying 183.17.228.29...  
Connected to 183.17.228.29.  
Escape character is '^]'.                                                                 
Connection closed by foreign host.

Возможно, вы захотите проверить, установлен ли у вас DenyHosts, у DenyHosts есть собственные файлы allow и deny hosts.
Robby1212

Вы уверены, что программное обеспечение, которое вы используете на ПК, совместимо со всеми режимами шифрования SSH?
Тарака Девинда

как я уже упоминал, я проверил файлы hosts, не для DenyHosts
user3054879

Я не уверен, может быть, алгоритм шифрования был другим, но мой клиент был замазкой .... но я могу ssh на тот же сервер по конечной остановке на IOS
user3054879

Из пути к файлам ключей, я полагаю, вы подключаетесь как root. Это обычно не включено; посмотрите на вашу конфигурацию sshd. ssh -vvvможет дать вам больше информации.
коньковый

Ответы:


14

Просто перезагрузите ваш сервер, который вы хотите ssh. У меня это сработало, раньше я сталкивался с той же проблемой.


1
Не удалось найти основную причину, но перезагрузка сработала для меня.
Рагхавендра N

2
Я столкнулся с той же проблемой, когда ssh на мой бесплатный сервер на AWS. Это вызвано тем, что сервер исчерпал память. Перезагрузка работает.
Леон

@thistleknot, перезагрузка работает для меня и легко быстро исправить. Ничего страшного в этом нет. На самом деле я не знаю, что вызвало проблему, но перезагрузка что-то исправила.
Кузен Кокаин

Если перезагрузка сработала, это, вероятно, не проблема конфигурации, а проблема с ресурсами. Возможно, увеличение приоритета ssh могло бы помочь.
JohnRos

1
перезагрузка сервера очень плохое предложение.
Хоссейн Ватани

8

На самом деле это означает, что ваш IP занесен в черный список на сервере. Попробуйте внести в белый список свой IP-адрес, чтобы иметь возможность войти в систему. Вы можете взглянуть на список / etc / hosts и посмотреть, изменился ли IP-адрес вашего сервера.


7
Это действительно не обязательно так.
sempaiscuba

2
Это казалось правдой для меня. Я обнаружил, что мой сервер Cloudways занес в черный список мой домашний IP, и мне нужно было вручную внести его в белый список.
Райан

Проблема исчезла через несколько часов, я не знаю почему, но мне не нужно было делать перезагрузку.
Салем Ф

Спасибо за комментарий: «Сервер Cloudways занес в черный список мой домашний IP» - это только что произошло с нами - вручную занесен в белый список, и все хорошо.
Жюль Мэтьюз

1

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

Вы можете увеличить значение MaxAuthTries и перезапустить демон sshd. Или вы можете ограничить количество ключей в вашем ~/.sshкаталоге и использовать подкаталоги и ~/.ssh/configфайлы для определения ключа для хоста / группы хостов.


Я пробовал это, но потерпел неудачу, фактически я почти попробовал все методы, которые я могу найти в Интернете, я думаю, что ключ был алгоритмом шифрования, но я не знаю, как это исправить
user3054879

2
что ты пробовал? Пожалуйста, обновите свой вопрос
Ромео Нинов

1

Я решил проблему так, что пошел на хост-компьютер и выполнил несколько команд.

sudo mkdir /var/run/sshd
sudo chmod 755 -R /var/run/sshd
sudo service ssh restart

После этого я подключился к машине.


1

У меня было то же самое, и мне нужно было ssh -v 'ip addr', и тогда я увидел, что мне нужно принять сертификат. Также может быть замазка ACL или правила маршрута: пример -

У клиента Putty есть 10.xxx addr с брандмауэрами, блокирующими корпоративную сеть от общения с DMZ-хостами, но ваш сотовый телефон на 58.xxx с любым публичным IP-адресом может связаться с хостом dmz, к которому вы пытаетесь подключиться.

так что я бы посмотрел информацию ssh -v, когда вы попытаетесь подключиться снова, посмотрите, сможете ли вы получить какую-либо информацию, а затем проверите, есть ли правила, не позволяющие вам попасть на ваш сервер на уровне брандмауэра или маршрутизатора, а не на Файл denyhosts на самом сервере.


0

Я использую мобильную горячую точку для подключения к сети, когда я работал, консоль зависла, и я больше не мог подключиться ssh_exchange_identification: read: Connection reset by peer

Я пытался сбросить SRV, но это не помогло

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

ПРИМЕЧАНИЕ: я все еще могу использовать старое соединение для подключения к SRV на другом AWS, странно ...


0

Для решения проблемы выполните следующие действия:

  1. Перезагрузите сервер с сервера онлайн-терминала.

Если это не работает,

  1. Редактировать файл $HOME/.ssh/known_hosts
  2. Удалите любой контент внутри этого файла, когда он снова подключится к любым серверам, которые вы используете, вы должны повторно принять подключения.

1
-1 для полного удаления known_hosts. Было бы лучше отредактировать этот конкретный хост, о котором идет речь (хотя я сомневаюсь, что это поможет здесь).
Дэвид Фёрстер,

0

Создайте новую пару ключей ssh ​​для аутентификации пользователя. Руководство по аутентификации ключей SSH и открытых ключей

Просто следуйте инструкциям.


Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить сюда основные части ответа и предоставить ссылку для справки.
Кевин Боуэн

0

Причин может быть много, но одной из наиболее вероятных может быть (в моем случае это так), что ssh / port 22 не разрешен брандмауэром .

Вы можете разрешить ssh-соединение через пользовательский интерфейс (некоторые провайдеры разрешают это) или, если у вас есть какой-либо альтернативный способ входа (например, digitalocean предоставляет кнопку консоли), вы можете выполнить команду ниже

sudo ufw allow ssh
sudo ufw allow 22

0

Похоже, демон ssh на сервере завис. Вы уверены, что он работает? Когда вы общаетесь с ssh, вы должны увидеть подпись. Что-то вроде:

telnet unixhow.com 22
Trying 35.228.26.20...
Connected to unixhow.com.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.1

Из ваших выводов я вижу, что демон ssh не отвечает на стороне сервера. Я рекомендую подключиться через IP-KVM (или каким-либо другим способом) к удаленной машине и перезапустить sshd.


0

Это может быть связано с тем, что на вашей Ubuntu не запущен сервер openssh. Вы можете запустить приведенную ниже команду, чтобы проверить состояние вашего сервера openssh.

ubuntu@ubuntu:~$ sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-03-20 11:52:16 GMT; 5min ago
  Process: 1034 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 1058 (sshd)
    Tasks: 1
   Memory: 5.1M
      CPU: 122ms
   CGroup: /system.slice/ssh.service
           └─1058 /usr/sbin/sshd -D

Mar 20 11:52:15 ubuntu systemd[1]: Starting OpenBSD Secure Shell server...
Mar 20 11:52:16 ubuntu sshd[1058]: Server listening on 0.0.0.0 port 22.
Mar 20 11:52:16 ubuntu sshd[1058]: Server listening on :: port 22.
Mar 20 11:52:16 ubuntu systemd[1]: Started OpenBSD Secure Shell server.
Mar 20 11:52:24 ubuntu sshd[1131]: Connection closed by 10.0.2.2 port 60566 [preauth]
Mar 20 11:53:59 ubuntu sshd[1135]: Accepted password for ubuntu from 10.0.2.2 port 60654 ssh2
Mar 20 11:53:59 ubuntu sshd[1135]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)
Mar 20 11:57:48 ubuntu sshd[1238]: Accepted password for ubuntu from 10.0.2.2 port 61124 ssh2
Mar 20 11:57:48 ubuntu sshd[1238]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)

Если статус не установлен active (running), вы можете установить и / или запустить openssh-сервер. Вы можете сделать это с помощью команд, показанных ниже.

sudo apt update
sudo apt install openssh-server

0

У меня была та же проблема, но после перезапуска демона sshd я смог подключиться к хосту.

sudo systemctl restart sshd && systemctl status sshd

Это временный обходной путь, пока вы не увеличите параметр MaxAuthTries.


0

Мое решение - добавить мой локальный IP-адрес в /etc/hosts.allow:

sshd:192.168.10.88:allow

это работает для меня.


-2
  1. Убедитесь, что sshd установлен и работает на сервере.
  2. Убедитесь, что демон установлен и запущен. У вас должна быть возможность 'man sshd'. Я думаю, что это пакет open-ssl, и вам нужно будет запустить демон (и остановить его, когда он вам не нужен).

конечно, я установил sshd, как я уже говорил, я могу ssh на тот же сервер по конечной остановке на iphone ... но замазка не удалась
user3054879
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.