Błąd połączenia SSH: ssh_exchange_identification: read: Resetowanie połączenia przez partnera

25

Kiedy próbowałem połączyć się z serwerem przez SSH, pojawia się następujący błąd,

[root@oneeighty ~]# ssh -vvv -p 443 [email protected]
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to xxx.xxx.xxx [IP] port 443.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/identity type -1
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: loaded 3 keys
ssh_exchange_identification: read: Connection reset by peer

Sprawdziłem konfigurację SSH na serwerze i kliencie i nie ma żadnych problemów.

Uruchomiono ponownie usługę SSH na serwerze, a następnie ponownie uruchomiono serwer / klienta, ale problemy nie zostały rozwiązane.

Senthil G.
źródło
Możesz zezwolić na połączenie ssh przez zaporę Interfejs użytkownika (niektórzy dostawcy to dopuszczają) lub Jeśli masz inną metodę logowania (np. Digitalocean zapewni przycisk konsoli), możesz uruchomić komendę sudo ufw allow ssh sudo ufw allow 22
BSB

Odpowiedzi:

26

Może to wynikać z wielu rzeczy.

Kilka rzeczy, które możesz szybko wypróbować, to:

  • Poszukaj w /etc/hosts.deny każdego wpisu takiego jak sshd: ALL
  • Być może dodaj sshd: ALLdo/etc/hosts.allow

  • Możliwe, że klucze hosta SSHD są uszkodzone. Są obecne w katalogu / etc / ssh /. Możesz je usunąć i zrestartować sshd, a on je ponownie wygeneruje. W przypadku wystąpienia błędów użyj następujących poleceń

    $ ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
    $ ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
    $ ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
    $ /etc/init.d/sshd start
    
Vagarwal
źródło
w pliku /etc/hosts.deny i /etc/hosts.allow wszystkie linie są komentowane.
Senthil G,
1
Dodaj sshd: ALLdo hosts.deny, aby sprawdzić, czy to pomoże.
vagarwal
2

Następny wiersz w debugowaniu powinien wyglądać następująco:

debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3p1 Debian-3ubuntu7

Na StackOverflow potwierdziłeś, że korzystasz z NAT / przekierowania portów z zewnętrznego adresu IP. Sprawdziłeś również, że możesz ssh z lokalnego pola do siebie. Ponieważ sshing lokalnie do portu 443 działa, musisz zweryfikować działanie mapowania portów.

Próbować:

  1. SSH z innego urządzenia w tej samej podsieci
  2. Uruchom iptables -Li sprawdź, czy port 443 jest otwarty lub czy WEJŚCIE i WYJŚCIE są ustawione na AKCEPTUJ
  3. Uruchom, tcpdump -A -s 0 port 443a następnie spróbuj sshing do zewnętrznego adresu IP. Powinieneś zobaczyć dane przychodzące z adresem źródłowym routera
Alastair McCormack
źródło
2

FWIW, używam Ubuntu 14.04 na AWS. Problem został rozwiązany przez SSHing za pośrednictwem klienta Java Web i działającego sudo service apache2 start. Chciałem tylko, aby moja strona internetowa została ponownie utworzona, ale poprawiła również dostęp do SSH. Nie mam pojęcia dlaczego, ale nie narzekam.

Mazyod
źródło
ten sam problem tutaj. moja sesja nie odpowiadała bez powodu i nie mogłem ponownie połączyć się przez kit. korzystanie z klienta WWW robiło wszystko, co w mojej mocy, aby moje połączenie przez kit znów działało.
AndrewK,
Dziękuję, nie wiem jak, ale to naprawdę pomogło. *** aws
Siarhey Uchukhlebau
1

Sprawdź dozwolone. Hosty na serwerze, z którym próbujesz się połączyć, a także wszelkie reguły iptables, które są uruchomione.

KJS
źródło
1

Problem został rozwiązany.
Problem dotyczy modułu równoważenia obciążenia, który mamy w naszej sieci. Problem został rozwiązany po ponownym uruchomieniu modułu równoważenia obciążenia.

Senthil G.
źródło
1

Dzisiaj spotkałem się z podobnym problemem, ponieważ nagle odmówiono dostępu ssh do maszyny wirtualnej z tym samym komunikatem. ssh -v (na kliencie) i sshd -d (na serwerze) niewiele pomogły. Problem w moim przypadku zaczął się z powodu zmiany ustawień zapory ogniowej / iptable, które zrobiłem dla niektórych demonstracji użycia stosu LAMP.

Użyłem system-config-firewall-tui, aby włączyć zaporę ogniową i wybrałem stamtąd tylko httpd, który zablokował wszystkie inne usługi oprócz httpd.

Więc jako rozwiązanie tego albo dodaj uprawnienia do sshd przez

  • aktualizacja ustawień iptable conf LUB
  • Wybór sshd z system-config-firewall-tui LUB
  • Wyłączanie zapory LUB
  • Zatrzymaj usługę iptable (rhel6, usuń ją również z chkconfig) usługa iptables stop

ssh działa teraz idealnie dobrze !!!

Rinky
źródło
0

Dla mnie zezwalam na połączenia sshd w pliku / etc / hosts.

vi /etc/hosts.allow
and add 

sshd: ALL
David Okwii
źródło
0

Rozwiązałem problem, podszedłem do komputera-hosta i uruchomiłem kilka poleceń

sudo mkdir / var / run / sshd

sudo chmod 755 -R / var / run / sshd

ponowne uruchomienie ssh usługi sudo

Potem połączyłem się z maszyną.

Sayan Biswas
źródło
-3

Pierwsze czyszczenie openssh- * (openssh-server i openssh-client)

apt-get --purge remove openssh-*

usunięcie katalogu /home/username/.ssh

rm -rf /home/username/.ssh 

następnie zainstaluj serwer openssh i openssh-client

apt-get install openssh-server openssh-client
Shankar
źródło
3
Nie, nawet nie blisko, odpowiedź PO mówi, na czym polegał problem. Twoja odpowiedź jest specyficzna dla dystrybucji korzystających z apt, OP używał RHEL. Usunięcie i ponowna instalacja pakietu prawie nigdy nie jest rozwiązaniem.
user9517 obsługuje GoFundMonica
Czy zrobiłeś to wszystko na lokalnym lub zdalnym serwerze?
Jonathan