“Ssh_exchange_identification: read: Eş tarafından bağlantı sıfırlama” hatası nasıl düzeltilir?


21

Bilgisayarımı kullanarak sunucuma ssh üzerinden bağlanamıyorum, ancak bu sunucuya termius uygulamasını kullanarak cep telefonumla bağlanabiliyorum. Kontrol ettim /etc/hosts.allowve /etc/hosts.denyve benim iptables ve alse arandı google, hiçbir sorun bu soruna uyuyor gibi görünüyor. Nasıl çözüleceğini bilmiyorum, işte ssh -v 183.17.228.80çıktı

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

Bu sunucuya ping atabilirim, işte telnet

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'un yüklü olup olmadığını kontrol etmek isteyebilir, DenyHosts'un kendi izin ver ve reddet ana bilgisayar dosyaları vardır.
Robby1212

PC'de çalıştırdığınız yazılımın tüm SSH şifreleme modlarıyla uyumlu olduğundan emin misiniz?
Tharaka Devinda

belirttiğim gibi, DenyHosts için değil, ana bilgisayar dosyalarını kontrol ettim
user3054879

Emin değilim, belki şifreleme algoritması farklıydı, ama müvekkilim macun .... ama IOS üzerinde terminus ile aynı sunucuya ssh olabilir
user3054879 25:07

Sanırım anahtar dosyaların yolundan bağlandığınızı sanıyorum root. Bu genellikle etkinleştirilmez; sshd yapılandırmanıza bakın. ssh -vvvsize daha fazla bilgi verebilir.
ridgy

Yanıtlar:


14

Sadece ssh istediğiniz sunucunuzu yeniden başlatın . Benim için işe yaradı, daha önce aynı sorunla karşı karşıyaydım.


1
Temel neden bulunamadı, ancak yeniden başlatma benim için çalıştı.
Raghavendra N

2
AWS'deki ücretsiz sunucuma ssh yaparken de aynı sorunla karşılaştım. Bunun nedeni sunucunun bellek yetersizliğidir. Yeniden başlatma çalışır.
leon

@ thistleknot, yeniden başlatma benim için çalışıyor ve kolay hızlı bir düzeltme. Bu konuda korkunç bir şey yok. Aslında soruna neyin neden olduğunu bilmiyorum, ancak yeniden başlatma bir şeyi düzeltti.
CousinCocaine

Yeniden başlatma işe yaradıysa, büyük olasılıkla bir yapılandırma sorunu değil, bir kaynak sorunudur. Belki ssh'nin önceliğini arttırmak hile yapmış olabilir.
JohnRos

1
reboot server çok çok kötü bir öneridir.
Hossein Vatani

8

Bu aslında IP'nizin sunucu tarafından kara listeye alındığı anlamına gelir. Giriş yapabilmek için IP adresinizi beyaz listeye eklemeyi deneyin. Sunucunuzun ip adresinin değişip değişmediğini görmek için / etc / hosts listesine bakabilirsiniz.


9
Gerçekten böyle olmak zorunda değil.
sempaiscuba

2
Bu benim için doğru gibi görünüyordu. Cloudways sunucumun ev IP adresimi kara listeye aldığını ve manuel olarak beyaz listeye eklemem gerektiğini öğrendim.
Ryan

Sorun birkaç saat sonra kayboldu, nedenini bilmiyorum ama yeniden başlatmam gerekmiyordu.
Salem F

Yorum için teşekkürler: "Cloudways sunucusu ev IP adresimi kara listeye almıştı" - bu sadece bize olmuştu - elle beyaz listeye ve gitmek için iyi.
Jules Matthews

2

Sorunu çözme yolum, ana makineye gittim ve birkaç komut çalıştırdım.

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

Bundan sonra makineye bağlandım.


1

Yukarıdaki hata, sunucunun kimliğini doğrulamayı denemede başarısız olduğunuzda ve istemcinizde çok fazla ssh anahtarınız olduğunda (MaxAuthTries değerinden fazla) oluşur

Deneyebileceğiniz MaxAuthTries değerini artırmak ve sshd arka plan programını yeniden başlatmaktır. Veya ~/.sshdizininizdeki anahtar sayısını sınırlayabilir ve ~/.ssh/configana bilgisayar / ana bilgisayar grubu başına anahtar tanımlamak için alt dizinleri ve dosyayı kullanabilirsiniz


Bunu denedim, ama başarısız oldum, aslında neredeyse internette bulabildiğim her yöntemi denedim, anahtarın şifreleme olumsuzlama algoritması olduğunu tahmin ediyorum, ama nasıl düzeltileceğini bilmiyorum
user3054879

2
ne denedin lütfen sorularınızı güncelleyin
Romeo Ninov

1

Aynı şey oldu ve ssh -v 'ip addr' için gerekli ve sonra sertifikayı kabul etmek için gerekli olduğunu gördüm. Ayrıca bir ACL veya rota kuralı engelleme macunu olabilir: örnek -

Macun istemcisi, kurumsal ağın DMZ ana bilgisayarlarıyla konuşmasını engelleyen güvenlik duvarlarına sahip 10.xxx addr'ye sahiptir, ancak 58.xxx adresindeki cep telefonunuz halka açık ip adresi ile konuşmaya çalıştığınız dmz ana bilgisayarıyla konuşabilir.

Bu yüzden, tekrar bağlanmaya çalıştığınızda ssh -v bilgilerine bakarım, herhangi bir bilgiyi toplayıp toplayamayacağınıza bakın ve ardından sunucunuza bir güvenlik duvarı veya yönlendirici düzeyinde ulaşmanızı engelleyen kurallar olup olmadığını kontrol edin. sunucunun kendisinde denyhosts dosyası.


0

Web'e bağlanmak için hücresel etkin noktamı kullanıyorum, konsolu dondururken çalışırken daha fazla bağlanamadım ssh_exchange_identification: read: Connection reset by peer

SRV'yi sıfırlamaya çalıştım ama yardımcı olmadı

Yalnızca ağ bağlantımı değiştirdiğimde (farklı bir hücredeki bir etkin noktaya) tekrar bağlanabilirim.

NOT: Eski bağlantıyı farklı bir AWS'deki SRV'lere bağlamak için hala kullanabilirim, garip ...


0

Sorunu çözmek için aşağıdakileri yapın:

  1. Sunucunuzu sunucu çevrimiçi terminalinden yeniden başlatın.

Bu işe yaramazsa,

  1. Dosyayı düzenle $HOME/.ssh/known_hosts
  2. Bu dosyanın içindeki içeriği silin, ssh olan sunuculara yeniden bağlanacağı zaman bağlantıları yeniden kabul etmeniz gerekir.

1
Tam silme için -1 known_hosts. (Bu yardımcı olacaktır şüphe rağmen) söz konusu bu ana bilgisayar düzenlemek daha iyi olurdu.
David Foerster


0

Birçok neden olabilir, ancak en olası nedenlerden biri (benim durumumda) ssh / port 22'ye güvenlik duvarı tarafından izin verilmiyor olabilir .

Kullanıcı arabirimi ile ssh bağlantısına izin verebilirsiniz (bazı sağlayıcılar buna izin verir) veya Oturum açmak için alternatif bir yönteminiz varsa (örn. Digitalocean bir konsol düğmesi sağlar) aşağıdaki komutu çalıştırabilirsiniz

sudo ufw allow ssh
sudo ufw allow 22

0

Görünüşe göre sunucuda ssh daemon asılı. Çalıştığından emin misiniz? Ssh'ye telnet yaptığınızda, bir imza görmelisiniz. Gibi bir şey:

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

Çıktıdan gördüğüm şey ssh daemon'un sunucu tarafında yanıt vermemesidir. IP-KVM (veya başka bir yolla) uzak makineye bağlanmanızı ve sshd'yi yeniden başlatmanızı öneririm.


0

Bunun nedeni ubuntu'nuzda çalışan bir openssh sunucunuzun olmaması olabilir. Openssh sunucunuzun durumunu kontrol etmek için aşağıdaki komutu çalıştırabilirsiniz.

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)

Durum böyle değilse active (running), openssh sunucusunu kurmak ve / veya başlatmak isteyebilirsiniz. Bunu aşağıda gösterilen komutlarla yapabilirsiniz.

sudo apt update
sudo apt install openssh-server

0

Aynı sorunu yaşadım ama sshd arka plan programı yeniden başlatıldıktan sonra sunucuya bağlanabildim.

sudo systemctl restart sshd && systemctl status sshd

MaxAuthTries parametresini artırıncaya kadar bu geçici bir çözümdür.


0

Benim çözümüm yerel IP adresimi şuraya eklemektir /etc/hosts.allow:

sshd:192.168.10.88:allow

bu benim için çalışıyor.


-2
  1. Sunucunun yüklü ve çalışır durumda olduğunu kontrol edin.
  2. Arka plan programının yüklendiğinden ve başlatıldığından emin olun. 'Man sshd' yapabilmeniz gerekir. Bence paketin açık-ssl olduğunu ve cini başlatmanız (ve ihtiyacınız olmadığında durdurmanız) gerekecek.

Tabii ki sshd yükledim, bahsettiğim gibi iphone üzerinde terminus ile aynı sunucuya ssh ... ama macun başarısız
user3054879 25:07
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.