Kratak odgovor
Poruka „connection refused“ znači da je server dostupan, ali nijedan servis ne prihvata vezu na traženom portu. Najčešće je uzrok to što SSH servis (sshd) ne radi, osluškuje drugi port ili ga blokira firewall. Proverite redom: da li sshd radi, na kom portu, da li je port otvoren i da li ste na pravom hostu.
Kako se problem prepoznaje
- Klijent prijavi „ssh: connect to host ... port 22: Connection refused“
- Ping na server prolazi, ali SSH veza se odmah odbija
- Veza radi sa jedne mreže, a sa druge ne
- Nakon promene porta ili konfiguracije sshd-a pristup prestane
- Server se podigao posle restarta i SSH više ne prima veze
Najčešći uzroci
SSH servis nije pokrenut
sshd proces ne radi ili je pao, pa operativni sistem odbija vezu na portu 22. Proverite status servisa i logove.
SSH osluškuje na drugom portu
U konfiguraciji je promenjen port (npr. na 2222), a vi se povezujete na podrazumevani 22. Klijent tada dobija connection refused.
Firewall blokira port
Lokalni firewall (ufw, firewalld, nftables) ili cloud security grupa odbija saobraćaj na SSH portu.
Pogrešan host ili IP
Povezujete se na IP adresu na kojoj ne radi SSH, na pogrešan server ili na uređaj koji ne dozvoljava SSH.
Servis sluša samo na localhost
sshd je vezan na 127.0.0.1 ili na pogrešan interfejs, pa spolja ne prima veze.
Rešenje korak po korak
- 1
Proverite da li ste na pravom hostu i portu
Prvo potvrdite IP adresu ili ime servera i port. Ako ne znate port, pitajte administratora ili pogledajte konfiguraciju. Podrazumevano je 22, ali mnogi serveri koriste drugi port. Na klijentu probajte eksplicitno:
ssh -p 22 korisnik@server. Ako i dalje dobijate „connection refused“, nastavite dalje. - 2
Proverite da li je server dostupan
Sa klijenta pokrenite
ping serverinc -vz server 22(ilitelnet server 22). Ako ping prolazi a nc prijavi „Connection refused“, mreža je u redu, ali servis ne prima vezu. Ako nc prijavi „timed out“, verovatno firewall odbacuje pakete. - 3
Prijavite se lokalno ili preko konzole
Ako imate fizički pristup ili konzolu provajdera (KVM, VNC, serial), prijavite se kao root ili korisnik sa sudo pravima. Bez toga ne možete proveriti stanje servisa. Ako nemate konzolu, obratite se provajderu.
- 4
Proverite status SSH servisa
Pokrenite
systemctl status ssh(Debian/Ubuntu) ilisystemctl status sshd(RHEL/CentOS). Ako je servis neaktivan, pokrenite ga:sudo systemctl start ssh(Debian/Ubuntu) ilisudo systemctl start sshd(RHEL/CentOS). Zatim proverite da li je omogućen pri podizanju sistema:sudo systemctl enable ssh(Debian/Ubuntu) ilisudo systemctl enable sshd(RHEL/CentOS). - 5
Pogledajte logove za greške
Koristite
journalctl -u ssh -n 50ilijournalctl -u sshd -n 50. Tražite poruke o grešci pri pokretanju, npr. „bind: Address already in use“ ili „error: Bind to port 22 failed“. Na starijim sistemima pogledajte/var/log/auth.logili/var/log/secure. - 6
Proverite na kom portu i interfejsu sshd sluša
Pokrenite
ss -tlnp | grep sshilinetstat -tlnp | grep ssh. Obratite pažnju na kolonu Local Address. Ako piše127.0.0.1:22, sshd sluša samo lokalno. Ako piše0.0.0.0:2222, port je 2222. U konfiguraciji/etc/ssh/sshd_configproveritePortiListenAddress. - 7
Proverite firewall
Na Ubuntu/Debian:
sudo ufw status verbose. Na RHEL/CentOS:sudo firewall-cmd --list-all. Uverite se da je SSH port dozvoljen. Ako koristite cloud, proverite security grupu ili mrežni firewall u konzoli provajdera. Ako koristite ufw, možete dozvoliti SSH port (npr.sudo ufw allow 22/tcp). - 8
Ispravite konfiguraciju i restartujte sshd
Ako ste menjali
/etc/ssh/sshd_config, proverite sintaksu:sudo sshd -t. Zatim restartujte servis:sudo systemctl restart ssh(Debian/Ubuntu) ilisudo systemctl restart sshd(RHEL/CentOS). Vodite računa da restart može prekinuti postojeće veze, pa pre toga obezbedite alternativni pristup. Ako je sve u redu, pokušajte ponovo sa klijenta.
Ako ništa ne pomogne: napredne provere
Ako je sshd aktivan i sluša na 0.0.0.0:22, a veza se i dalje odbija, proverite da li postoji drugi firewall sloj (npr. nftables pravila, fail2ban koji je dodao zabranu). Pogledajte sudo nft list ruleset i sudo fail2ban-client status sshd. U cloud okruženju proverite da li je javna IP adresa pravilno mapirana na instancu. Možete privremeno pokrenuti sshd na drugom portu radi testa: sudo sshd -p 2222 -d (debug režim, ne prekidajte sesiju). Ako se problem javlja samo sa jednog klijenta, proverite lokalni firewall ili VPN. Za produkcijske servere obavezno imajte alternativni pristup (konzola, drugi SSH port) da biste izbegli zaključavanje.
Kako da sprečite da se ponovi
- Redovno proveravajte status sshd servisa i logove
- Vodite evidenciju o promenama porta i firewall pravila
- Obezbedite alternativni pristup (konzola, drugi port)
- Koristite monitoring koji detektuje nedostupnost SSH-a
Kada je bolje pozvati stručnjaka
Ako nemate konzolu ili alternativni pristup serveru, a SSH ne radi, rizikujete trajno zaključavanje. U tom slučaju je bolje da pozovete IT podršku koja ima iskustva sa udaljenim oporavkom.
Održavanje IT infrastrukture · Serveri, mreže, backup, bezbednost i helpdeskČesta pitanja
Zašto dobijam „connection refused“ kada ping prolazi?
Ping testira mrežnu dostupnost, a ne servis. Connection refused znači da je host dostupan, ali nijedan proces ne prihvata vezu na tom portu. Najčešće sshd ne radi ili sluša na drugom portu.
Kako da saznam na kom portu SSH radi?
Na serveru pokrenite `ss -tlnp | grep ssh` ili pogledajte `/etc/ssh/sshd_config` (direktiva `Port`). Ako nemate pristup serveru, pitajte administratora ili provajdera.
Da li je bezbedno restartovati sshd?
Restart može prekinuti postojeće SSH sesije, ali neće obrisati podatke. Pre restartovanja proverite sintaksu sa `sudo sshd -t` i obezbedite alternativni pristup (npr. konzolu). Ako niste sigurni u konfiguraciju, ne restartujte sshd preko iste sesije.