Jedna mašina doseže drugu preko VPN-a, a neko sada želi isti shell preko privatne mreže provajdera. Ruta postoji, ping uspijeva, a SSH ipak odbija. Uobičajen uzrok je da daemon nikada nije slušao na novoj adresi, pa nema čemu da se poveže. Ovo je problem vezivanja adrese prije nego problem firewall-a.

Zašto nova ruta ne stvara novi slušalac

Slušajući socket stvara proces koji imenuje adrese koje će prihvatati. Ruta samo govori paketima kuda da putuju; ona ne stvara slušalac na odredištu. Kada je sshd konfigurisan sa jednim ListenAddress, veze na bilo koju drugu lokalnu adresu se odbijaju iako je interfejs aktivan. Isto važi za socket unit koji posjeduje port, zato je prva provjera uvijek ono što stvarno sluša.

Uporedite dva puta po odredišnoj adresi, a ne po nazivu interfejsa. Klijent se povezuje na adresu, a ta adresa mora biti vezana prije nego što bilo koje firewall pravilo postane važno.

Navedite adrese i slušaoce

Prije nego što bilo šta uredite, zapišite adrese na hostu i socket-e koji sada postoje.

ip -br addr
ss -ltnp | grep ':22'

Lista adresa pokazuje koja je privatna adresa stvarna i na kojem interfejsu, dok lista socket-a pokazuje je li nešto vezano na nju. Slušalac na 0.0.0.0:22 već prihvata svaku adresu, pa novo vezivanje ne dodaje ništa. Slušalac na jednoj konkretnoj adresi odmah objašnjava odbijanje. Ako port pripada socket unitu, a ne daemonu, konfiguracija daemona nije cijela priča.

Dodajte vezivanje i zadržite staro

OpenSSH prihvata nekoliko ListenAddress unosa, pa VPN put može ostati dok se dodaje privatni. Testirajte datoteku prije nego što je ponovo učitate.

sshd -t
systemctl reload sshd

Neuspješan test konfiguracije ostavlja pokrenuti daemon netaknutim, i to je upravo ono što želite dok ste povezani preko puta koji uređujete. Zadržite postojeći unos, dodajte novu lokalnu adresu i potvrdite da se servis ponovo učitava bez prekidanja trenutne sesije. Na instalacijama aktiviranim socket-om dodajte adresu umjesto toga u socket unit i ponovo učitajte taj unit. Zatim ponovo pročitajte listu slušalaca, jer vezivanje koje se nikada nije pojavilo znači da je uređena pogrešna komponenta.

Provjerite novu sesiju prije nego što zatvorite staru

Povežite se na novu adresu dok je originalna sesija još otvorena, koristeći detaljan izlaz da vidite koja adresa i ključ su korišteni. Držite originalnu sesiju otvorenom dok provjera ne uspije dva puta.

ssh -v [email protected]

Pročitajte debug redove za odredišnu adresu i ključ hosta koji je predstavljen. Potvrdite otisak ključa hosta prema vrijednosti kojoj već vjerujete, umjesto da prihvatite nepoznati ključ zato što je mreža opisana kao privatna. Novo odredište treba vlastiti known_hosts unos, i to je očekivano. Tek kada privatni put proradi, treba zatvoriti staru upravljačku sesiju.

SSH štiti transport, ali ne čini dvije mreže jednakim same po sebi. Odlučite odgovara li povjerenje privatnog tranzita podacima prije nego što se na njega oslonite.

Povezani članci