Težave s povezavo SSH: poiščite vzrok napake
Težave s povezavo SSH lahko izvirajo iz omrežja, storitve, prijavnih podatkov ali identitete strežnika. Začnite s točnim sporočilom napake in ohranite vsako še delujočo sejo, preden spreminjate nastavitve.
VPSuntu · Posodobljeno · Branje: približno 4 min.
V tem vodniku
Zabeležite en neuspešen poskus
Poiščite obnovitveno konzolo ponudnika in pustite delujočo sejo odprto. Ukazi odjemalca tečejo na vašem računalniku z Linuxom, macOS ali WSL. Strežniške ukaze izvajajte samo prek obstoječega dostopa ali preverjene konzole.
Zamenjajte dokumentacijski naslov 203.0.113.10, račun ubuntu, vrata 22 in pot ključa s svojimi podatki. Prvi ukaz izpiše uporabljene nastavitve, drugi poskusi novo povezavo brez deljenja prejšnje.
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.10Preglejte hostname, user, port, identityfile in nastavitve posrednika. Zapišite čas ter zadnjo napako. Nov ključ strežnika potrdite po spodnjem postopku preverjanja identitete. Pred deljenjem dnevnika odstranite občutljiva imena, naslove in poti; zasebnega ključa ne delite.
Izberite pravo vejo
Na majhnem zaslonu pomaknite preglednico vstran, da vidite vse stolpce.
| Sporočilo | Kaj pove | Naslednje preverjanje |
|---|---|---|
| Connection timed out pred vzpostavitvijo | Povezava TCP se ni zaključila | Naslov, usmerjanje, požarna zida in stanje VM |
| Connection refused | Aktivna zavrnitev na naslovu in vratih | Pričakovana vrata, poslušajoča storitev in pravila zavrnitve |
| Permission denied (publickey) | Dosežena je prijava, ponujeni ključ pa ni sprejet | Račun, ključ in strežniška pravila |
| REMOTE HOST IDENTIFICATION HAS CHANGED | Identiteta se razlikuje od shranjene | Zaupanja vredna potrditev ključa pred nadaljevanjem |
Sporočilo zoži izbiro, ne dokazuje ene same razlage. Če pred časovno omejitvijo že piše Connection established, preverite pogajanje SSH in dnevnik, ne predpostavite popolne blokade omrežja.
Pri časovni omejitvi sledite omrežni poti
Primerjajte naslov v ssh -v s trenutno instanco v nadzorni plošči. Star DNS ali drug cilj IPv6 lahko povezavo pošlje drugam. Preverite, ali potrebujete javni IP, VPN ali vmesni gostitelj.
Preverite stanje VM, javno pot, dejanska vrata SSH in trenutni javni naslov svojega računalnika. Domači IP se lahko spremeni, pravilo /32 pa ostane staro. Požarni zid operacijskega sistema preverite prek konzole.
V Oracle upoštevajte security list, NSG, usmerjanje in pravila slike. Praznjenje iptables ali namestitev UFW nista diagnostična koraka. Vodnik Oracle Ubuntu opisuje omrežno postavitev. Neuspešen ping sam ne dokazuje nedosegljivega SSH.
Pri zavrnitvi preverite poslušajočo storitev
Zavrnitev ne potrdi, da je cilj vaš VPS. Preverite naslov, identiteto in vrata. Nato prek delujočega dostopa ali konzole na strežniku izvedite:
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-pagerPoiščite poslušajočo storitev na pravem naslovu in vratih ter čas dnevnika povežite s poskusom. Ubuntu lahko uporablja aktivacijo prek vtičnice: neaktivna ssh.service sama ne pomeni napake, če posluša ssh.socket.
sshd -t preveri konfiguracijo in ključe gostitelja brez zagona novega procesa strežnika. Tiha uspešna izvedba ne potrjuje omrežne dosegljivosti. Pred ponovnim nalaganjem najprej razrešite navedeno datoteko ali nastavitev; ne zaganjajte na slepo.
Pri publickey preverite račun in ponujeni ključ
Uporabite ponudnikov začetni račun ali skrbnika, ki ste ga ustvarili. V dnevniku odjemalca poiščite prstni odtis ponujenega ključa. Za omejitev drugih ključev iz agenta na svojem računalniku poskusite:
ssh -v -S none -o IdentitiesOnly=yes -o StrictHostKeyChecking=ask -p 22 -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10Druge konfigurirane nastavitve IdentityFile lahko še vedno veljajo, zato preglejte ssh -G. Če zasebna datoteka ni berljiva ali ima preširoke pravice, najprej popravite lokalni dostop.
Na strežniku preverite ciljni račun in njegove javne ključe. Primer predpostavlja /home/ubuntu; uporabite dejanski imenik iz getent.
getent passwd ubuntu
sudo ls -ld /home/ubuntu /home/ubuntu/.ssh /home/ubuntu/.ssh/authorized_keys
sudo ssh-keygen -lf /home/ubuntu/.ssh/authorized_keysPrimerjajte dovoljene in ponujene odtise. Preverite lastništvo, pravice, AuthorizedKeysFile, vključene nastavitve in Match. Ponudnik lahko uporablja lasten sistem upravljanja ključev. Ohranite obstoječe vnose; ne izklapljajte StrictModes in ne omogočajte gesel, da bi prikrili vzrok.
Spremenjeno identiteto potrdite pred prijavo
Ponovna namestitev ali dodeljen drug IP lahko spremenita ključ. Nepričakovana sprememba lahko pomeni tudi napačen cilj ali prestrezanje. V svoji preverjeni nadzorni plošči potrdite ID instance in zgodovino načrtovanih sprememb.
V zaupanja vredni konzoli gostujočega sistema pokažite njegov javni ključ po algoritmu, ki ga navaja odjemalec. Za Ed25519:
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256Primerjajte SHA256 z opozorilom odjemalca. To je strežniški ključ, ne vaš prijavni ključ ali ključ konzolnega prehoda ponudnika. Po potrjeni spremembi naredite kopijo known_hosts in posodobite samo vnos tega strežnika. Ne brišite celotne datoteke in ne obidite preverjanja. Če identiteta ostane nejasna, povezavo prekinite.
Popravek preverite z novo sejo
Popravite ugotovljeni napačen naslov, račun, ključ, ozko omrežno pravilo ali konfiguracijsko napako. Med spremembami ohranite neodvisen dostop in pred uporabo preverite konfiguracijo SSH. Druga vrata lahko zahtevajo tudi spremembo aktivacije prek vtičnice.
Ponovite prvotni poskus brez deljenja povezave. Preverite pravi račun in potreben sudo. Stara seja, ki ostane odprta, ni preizkus nove prijave. Zabeležite vzrok in spremembo ter nadaljujte z nastavitvijo strežnika.
Pogosta vprašanja
Ali moram zaradi SSH ponovno namestiti Ubuntu?
Najprej ugotovite vzrok. Napačen naslov, uporabnik ali ključ ne zahtevajo ponovne namestitve, ki lahko uniči podatke. Brez dostopa uporabite ponudnikovo obnovo.
Ali delujoča konzola pomeni, da mora delovati SSH?
Ne. Konzola in javni SSH uporabljata različni poti. Delovati morajo tudi storitev, prijava in omrežna dovoljenja.