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

Я не могу подключиться к своему серверу через 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.

15 ответов

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

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

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

sudo systemctl restart sshd && systemctl status sshd

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

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

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

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

Похоже, демон 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.

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

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

Это может быть из-за того, что на вашей 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

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

sshd:192.168.10.88:allow

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

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

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

sudo ufw allow ssh
sudo ufw allow 22

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

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

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

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

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

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

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

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

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

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

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

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

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

По прошествии многих дней я не знаю, в чем была проблема в конце концов, возможно, у меня действительно было слишком много попыток, и мне пришлось ждать. Или это была другая вещь, например, отсутствующая установка openssh. Я разместил здесь рабочее руководство по использованию ssh для загрузки репозитория git , суть которого заключается в следующем:

      # first image only to download the git repo
FROM alpine as MY_TMP_GIT_IMAGE

RUN apk add --no-cache git
RUN mkdir -p /root/.ssh &&  chmod 700 /root/.ssh
COPY /.ssh/id_ed25519 /root/.ssh/id_ed25519
RUN chmod 600 /root/.ssh/id_ed25519

RUN apk -yqq add --no-cache openssh-client && ssh-keyscan -t ed25519 -H gitlab.com >> /root/.ssh/known_hosts
RUN git clone [email protected]:GITLAB_USERNAME/test.git
RUN rm -r /root/.ssh


# Start of the second image
FROM MY_BASE_IMAGE
COPY --from=MY_TMP_GIT_IMAGE /MY_GIT_REPO ./MY_GIT_REPO
  1. Убедитесь, что sshd установлен и запущен на сервере.
  2. Убедитесь, что демон установлен и запущен. У вас должна быть возможность 'man sshd'. Я думаю, что это пакет open-ssl, и вам нужно будет запустить демон (и остановить его, когда он вам не нужен).
Другие вопросы по тегам