Как исправить ошибку "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
Для решения проблемы выполните следующие действия:
- Перезагрузите сервер с сервера онлайн-терминала.
Если это не работает,
- Редактировать файл
$HOME/.ssh/known_hosts
- Удалите любой контент внутри этого файла, когда он снова подключится к любым серверам, которые вы используете, вы должны повторно принять подключения.
Я использую свою горячую точку сотовой связи для подключения к сети, пока я работал, консоль зависла, и я больше не мог подключиться 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
- Убедитесь, что sshd установлен и запущен на сервере.
- Убедитесь, что демон установлен и запущен. У вас должна быть возможность 'man sshd'. Я думаю, что это пакет open-ssl, и вам нужно будет запустить демон (и остановить его, когда он вам не нужен).