Praktiska pamācība / Piekļuves diagnostika

SSH savienojuma kļūdas: atrodiet cēloni

SSH savienojuma kļūdas novērsiet pēc precīzā kļūdas posma. Vispirms saglabājiet strādājošo sesiju vai atkopšanas konsoli, tad nošķiriet tīkla problēmu, atslēgas noraidījumu un servera identitātes maiņu.

· Atjaunināts · Lasīšana aptuveni 4 min.

Šajā pamācībā

Pierakstiet adresi, kontu un kļūdu

Lokālās komandas paredzētas Bash vidē Linux, macOS vai WSL. Aizstājiet 203.0.113.10, ubuntu, 22. portu un atslēgas ceļu ar savām vērtībām. Servera komandas izpildiet tikai saglabātajā sesijā vai uzticamajā konsolē.

Vispirms nolasiet SSH efektīvos iestatījumus un izveidojiet jaunu savienojumu bez jau atvērtas sesijas koplietošanas.

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.10

Pārbaudiet hostname, user, port, identityfile un iespējamo ProxyJump vai ProxyCommand. Saglabājiet pārbaudes laiku un pilnu kļūdas tekstu. Atkļūdošanas izvadē var būt kontu un tīkla informācija; pirms tās nosūtīšanas aizklājiet sensitīvus datus. Privāto atslēgu nesūtiet.

Nosakiet, kurā posmā savienojums apstājas

Mazā ekrānā ritiniet tabulu sāniski, lai redzētu visas kolonnas.

Paziņojums vai posmsKo tas norāda
Connection timed out pirms Connection establishedTCP savienojums nav izveidots; jāpārbauda tīkla ceļš
Connection refusedSavienojums tiek aktīvi noraidīts; autentifikācija vēl nav sasniegta
Permission denied (publickey)SSH autentifikācijas posms ir sasniegts, bet atslēga nav pieņemta
REMOTE HOST IDENTIFICATION HAS CHANGEDServera piedāvātā identitāte atšķiras no saglabātās
Noildze pēc Connection establishedTCP darbojas; jāizpēta SSH saruna un servera žurnāli

Ne katra noildze nozīmē bloķētu portu. Precīzs pēdējais veiksmīgais posms palīdz izvēlēties pārbaudi un neizmainīt jau strādājošu tīklu.

Noildzes gadījumā pārbaudiet tīkla ceļu

Panelī apstipriniet pašreizējo publisko IP un VM darbību. Domēnam pārbaudiet A un AAAA, kā arī to, vai klients izvēlas IPv6. Ja serveris ir privātā tīklā, var būt vajadzīgs VPN vai pārejas serveris.

Pārskatiet maršrutu, pakalpojumu sniedzēja tīkla kārtulas un viesu sistēmas ugunsmūri. Administratora publiskā adrese var būt mainījusies, kamēr atļautā /32 adrese palikusi vecā. Atļaujiet vajadzīgo avotu un faktisko SSH portu, nevis visu tīklu.

Oracle Cloud pārbaudiet security lists, NSG, maršrutēšanu un saglabātās viesu sistēmas kārtulas. Nepārslēdziet attēlu uz jaunu UFW konfigurāciju un neiztukšojiet iptables. Skatiet Oracle tīkla un atslēgu soļus. Ping neatbildēšana pati par sevi nepierāda, ka SSH nevar darboties.

Atteikuma gadījumā apskatiet klausīšanās portu

Uzticamajā servera konsolē pārbaudiet servisu, socket vienību, klausīšanās portus, žurnālu un konfigurācijas sintaksi.

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-pager

Socket aktivizācijas gadījumā neaktīvs ssh.service viens pats nenozīmē, ka SSH neklausās. Salīdziniet faktisko portu ar klienta iestatījumu. Veiksmīgs sshd -t bez izvades pārbauda konfigurācijas sintaksi, nevis ārēju sasniedzamību.

Noraidītas atslēgas gadījumā pārbaudiet kontu

Vispirms pārliecinieties, ka izmantots konkrētā attēla pareizais lietotājs. No sava datora norādiet paredzēto privāto atslēgu un pārbaudiet, kas tiek piedāvāts.

ssh -v -S none -o IdentitiesOnly=yes -o StrictHostKeyChecking=ask -p 22 -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10

IdentitiesOnly ierobežo aģenta atslēgu izvēli, taču konfigurācijā norādītie IdentityFile var joprojām piedalīties. Salīdziniet ar ssh -G. Ja lokālo atslēgu nevar nolasīt vai tās tiesības ir pārāk plašas, vispirms atrisiniet šo lokālo kļūdu.

Serverī ar getent noskaidrojiet faktisko kontu un mājas direktoriju; /home/ubuntu piemērā nomainiet, ja tas atšķiras.

getent passwd ubuntu
sudo ls -ld /home/ubuntu /home/ubuntu/.ssh /home/ubuntu/.ssh/authorized_keys
sudo ssh-keygen -lf /home/ubuntu/.ssh/authorized_keys

Salīdziniet publiskās atslēgas nospiedumu, failu īpašniekus, direktoriju tiesības un žurnāla noraidījuma iemeslu. Pārskatiet AuthorizedKeysFile, Match un Include iestatījumus, kā arī pakalpojumu sniedzēja pārvaldītās atslēgas. Saglabājiet esošās autorizētās atslēgas. Neatspējojiet StrictModes un neieslēdziet paroles tikai kļūdas apiešanai.

Servera identitātes maiņu apstipriniet neatkarīgi

Pārinstalēšana vai IP nodošana citai instancei var izskaidrot atslēgas maiņu, bet iespējams arī nepareizs galamērķis vai savienojuma pārtveršana. Uzticamajā panelī pārbaudiet instances ID un plānoto izmaiņu. Pēc tam konsolē nolasiet servera atslēgas nospiedumu.

sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256

Tā ir servera Ed25519 identitātes atslēga, nevis lietotāja pieteikšanās vai Oracle konsoles savienojuma atslēga. Tikai pēc nospieduma sakritības saglabājiet known_hosts kopiju un aizstājiet attiecīgā servera ierakstu. Nedzēsiet visu failu un neatslēdziet identitātes pārbaudi. Ja izmaiņa nav izskaidrojama, savienojumu neturpiniet.

Mainiet vienu cēloni un pārbaudiet jaunu sesiju

Veiciet šauru izmaiņu pēc atrastā cēloņa, saglabājot neatkarīgu atkopšanas piekļuvi. SSH konfigurāciju pārbaudiet pirms pārlādēšanas. Mainot portu, jāņem vērā arī socket aktivizācijas konfigurācija un tīkla kārtulas.

No klienta atkārtoti izveidojiet jaunu savienojumu bez sesiju koplietošanas, pārbaudiet kontu un vajadzīgās sudo tiesības. Vecā sesija nav jaunās piekļuves pārbaude. Pierakstiet cēloni, izmaiņu un rezultātu; pēc tam turpiniet vietnes iestatīšanu.

Jautājumi un atbildes

Vai SSH kļūdas dēļ uzreiz pārinstalēt VPS?

Nē. Vispirms nosakiet posmu un izmantojiet saglabāto sesiju vai konsoli. Pārinstalēšana var iznīcināt datus un pati neatrisina kļūdainu tīkla kārtulu.

Vai strādājoša pakalpojumu sniedzēja konsole pierāda SSH darbību?

Konsole var izmantot citu piekļuves ceļu. Tā palīdz izpētīt serveri, bet publisks SSH savienojums jāapstiprina no sava klienta.

Komandas ir diagnostikas piemēri. Tās nenozīmē, ka veikta pārbaude jūsu serverī vai mainīti tā piekļuves iestatījumi.

Saistītās pamācības