Greška SSH veze na Ubuntu VPS-u: pronađite uzrok
Najprije utvrdite u kojoj fazi SSH veza prestaje raditi. Timeout, odbijena TCP veza, odbijen ključ i promijenjen host ključ zahtijevaju različite provjere. Sačuvajte otvorenu sesiju ili pouzdan konzolni pristup dok testirate ispravku.
VPSuntu · Ažurirano: · Čitanje: približno 5 min
Sadržaj vodiča
Zabilježite tačan cilj i poruku greške
Naredbe klijenta pokreću se na vašem Linux, macOS ili WSL računaru. Naredbe servera pokreću se kroz postojeću sesiju ili konzolu odgovarajuće instance. Adresa 203.0.113.10 je primjer; zamijenite je stvarnom adresom, korisnikom, portom i putanjom ključa.
ssh -G -p 22 -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10
ssh -v -S none -o ConnectTimeout=10 -o StrictHostKeyChecking=ask -p 22 -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10Pregledajte efektivne hostname, user, port, identityfile i proxy postavke iz ssh -G. Dijagnostička veza isključuje dijeljenje postojeće konekcije da bi testirala novu prijavu. Zabilježite vrijeme i puni tip greške; prije dijeljenja uklonite privatne podatke iz debug izlaza. Nikada ne šaljite privatni ključ. Novi host ključ potvrdite pouzdanim putem.
Razlikujte mrežu, autentikaciju i identitet
Na manjem ekranu pomjerite tabelu vodoravno da vidite sve kolone.
| Poruka ili faza | Šta prvo provjeriti |
|---|---|
| Timeout prije Connection established | Adresu, rutu, cloud i gostujući firewall |
| Connection refused | Aktivno odbijanje veze, listener i odgovarajući port |
| Permission denied (publickey) | Korisnika, ponuđeni ključ i serverska pravila prijave |
| REMOTE HOST IDENTIFICATION HAS CHANGED | Identitet servera i razlog promjene host ključa |
Timeout nakon Connection established nastaje u kasnijoj fazi, poput razmjene SSH poruka ili prijave. Nemojte ga automatski tumačiti kao potpuno blokiran TCP pristup; uporedite vrijeme sa serverskim zapisima.
Timeout: provjerite put do tačne instance
Uporedite adresu u panelu sa DNS zapisima. Stari A ili AAAA zapis, druga IPv6 ruta, VPN ili jump host mogu usmjeriti vezu na drugi put. Provjerite da instanca radi i da ima očekivanu javnu adresu i rutu.
Cloud firewall mora dozvoliti stvarni SSH port sa vaše trenutne javne adrese, a gostujući firewall mora dozvoliti isti promet. Kod Oraclea pregledajte sva primjenjiva NSG i security list pravila i internet rutu. Sačuvajte pravila sistema, uključujući ona za iSCSI; ne instalirajte UFW niti praznite iptables naslijepo.
Neuspješan ping ne dokazuje da SSH ne može raditi: ICMP može biti zabranjen dok je TCP port dostupan. Mijenjajte samo provjereno pogrešno pravilo.
Connection refused: posluša li SSH na očekivanom portu?
Odbijena veza sama ne potvrđuje da ste stigli do ispravnog servera. Nakon provjere identiteta pristupite tačnoj instanci kroz postojeću sesiju ili konzolu i pročitajte stanje.
systemctl status ssh.service ssh.socket --no-pager
sudo ss -lntp
sudo /usr/sbin/sshd -t
sudo journalctl -u ssh.service -u ssh.socket --since '15 minutes ago' --no-pagerPovežite vrijeme pokušaja sa zapisima. Kod socket activation načina ssh.socket može slušati i kada ssh.service izgleda neaktivan. Rezultat sshd -t provjerava sintaksu konfiguracije i dostupnost potrebnih host ključeva; ne provjerava mrežni put.
Prije primjene popravite konkretnu grešku konfiguracije i ponovite provjeru. Nasumičan restart nije zamjena za dijagnozu i može prekinuti pristup.
Publickey: provjerite korisnika i ponuđeni ključ
Korisnik zavisi od imagea i vašeg podešavanja. Uporedite otisak ponuđenog javnog ključa sa ključem koji očekujete. Na klijentu pokušajte sa navedenim privatnim ključem i bez dijeljenja stare veze.
ssh -v -S none -o IdentitiesOnly=yes -o StrictHostKeyChecking=ask -p 22 -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10IdentitiesOnly ograničava izbor, ali konfigurirane IdentityFile stavke i dalje mogu uticati na njega; pregledajte ssh -G. Ako klijent ne može pročitati lokalni ključ, prvo riješite tu lokalnu putanju ili dozvole.
Na serveru provjerite stvarni home direktorij kroz getent. Primjer /home/ubuntu prilagodite tačnom nalogu.
getent passwd ubuntu
sudo ls -ld /home/ubuntu /home/ubuntu/.ssh /home/ubuntu/.ssh/authorized_keys
sudo ssh-keygen -lf /home/ubuntu/.ssh/authorized_keysUporedite ponuđeni ključ sa authorized_keys, vlasništvo, dozvole i relevantne journal poruke. AuthorizedKeysFile, Include, Match i usluga pružaoca za upravljanje ključevima mogu promijeniti očekivano ponašanje. Sačuvajte postojeće ovlaštene ključeve. Nemojte isključivati StrictModes ili uključivati lozinke da prikrijete uzrok.
Promijenjen host ključ: prvo potvrdite identitet
Ponovno kreirana instanca ili ponovo dodijeljena IP adresa može imati drugi host ključ. Isto upozorenje može označavati pogrešno odredište ili presretanje. U prijavljenom panelu provjerite identifikator instance i planirano ponovno kreiranje.
Kroz pouzdanu konzolu tačnog gostujućeg sistema provjerite njegov ED25519 host ključ:
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256Uporedite SHA256 i tip ključa sa upozorenjem klijenta. To nije otisak korisničkog ključa ni ključa servisne konzole pružaoca. Ako promjenu ne možete objasniti i potvrditi, prekinite povezivanje.
Nakon potvrđene promjene sačuvajte kopiju known_hosts pa zamijenite samo odgovarajući zapis za taj host i port. Ne brišite cijelu datoteku i ne isključujte provjeru identiteta.
Potvrdite novu vezu prije zatvaranja stare
Primijenite samo utvrđenu ispravku. Prije učitavanja serverske konfiguracije provjerite sintaksu; kod promjene porta uračunajte socket activation i oba nivoa firewall pravila. Sačuvajte nezavisan način pristupa.
Otvorite novu vezu bez connection sharinga i provjerite korisnika, potrebne dozvole i sudo. Stara otvorena sesija ne dokazuje da nova prijava radi. Zapišite uzrok, promjenu i vrijeme provjere. Za sljedeće korake koristite podešavanje Ubuntu VPS-a.
Česta pitanja
Trebam li odmah ponovo instalirati operativni sistem?
Ne. Najprije provjerite adresu, fazu greške, konzolni pristup i zapise. Ponovna instalacija može obrisati podatke, a ne rješava svaki mrežni ili klijentski problem.
Ako konzola radi, zašto SSH ne radi?
Konzola i javni SSH koriste različite pristupne puteve. Konzolni pristup omogućava provjeru sistema, ali ne dokazuje ispravnost javne rute, porta i autentikacije.