Kısa cevap
Bağlantı reddedildi mesajı, sunucunun erişilebilir olduğu ancak istenen portta hiçbir servisin bağlantıyı kabul etmediği anlamına gelir. En yaygın neden SSH servisinin (sshd) çalışmaması, farklı bir portu dinlemesi veya güvenlik duvarının engellemesidir. Sırayla kontrol edin: sshd çalışıyor mu, hangi portta, port açık mı ve doğru ana bilgisayarda mısınız.
Sorun nasıl anlaşılır
- İstemci "ssh: connect to host ... port 22: Connection refused" hatası veriyor
- Sunucuya ping başarılı ancak SSH bağlantısı hemen reddediliyor
- Bağlantı bir ağdan çalışıyor, diğerinden çalışmıyor
- Port veya sshd yapılandırması değiştirildikten sonra erişim kesiliyor
- Sunucu yeniden başlatıldıktan sonra SSH artık bağlantı kabul etmiyor
En yaygın nedenler
SSH servisi başlatılmamış
sshd süreci çalışmıyor veya çökmüş, bu nedenle işletim sistemi 22 numaralı porttaki bağlantıyı reddediyor. Servis durumunu ve günlükleri kontrol edin.
SSH farklı bir portu dinliyor
Yapılandırmada port değiştirilmiş (örneğin 2222), ancak siz varsayılan 22 numaralı porta bağlanıyorsunuz. İstemci bu durumda bağlantı reddedildi hatası alır.
Güvenlik duvarı portu engelliyor
Yerel güvenlik duvarı (ufw, firewalld, nftables) veya bulut güvenlik grubu SSH portundaki trafiği reddediyor.
Yanlış ana bilgisayar veya IP
SSH'nin çalışmadığı bir IP adresine, yanlış sunucuya veya SSH'ye izin vermeyen bir cihaza bağlanıyorsunuz.
Servis yalnızca localhost üzerinde dinliyor
sshd 127.0.0.1 veya yanlış arayüze bağlı, bu nedenle dışarıdan bağlantı kabul etmiyor.
Adım adım çözüm
- 1
Doğru ana bilgisayarda ve portta olduğunuzu doğrulayın
Önce sunucunun IP adresini veya adını ve portu onaylayın. Portu bilmiyorsanız yöneticiye sorun veya yapılandırmaya bakın. Varsayılan 22'dir, ancak birçok sunucu farklı bir port kullanır. İstemcide açıkça deneyin:
ssh -p 22 kullanici@sunucu. Hala "connection refused" alıyorsanız devam edin. - 2
Sunucunun erişilebilir olup olmadığını kontrol edin
İstemciden
ping sunucuvenc -vz sunucu 22(veyatelnet sunucu 22) komutlarını çalıştırın. Ping başarılı ancak nc "Connection refused" bildiriyorsa ağ sorunsuz, ancak servis bağlantı kabul etmiyor. nc "timed out" bildiriyorsa büyük olasılıkla güvenlik duvarı paketleri düşürüyor. - 3
Yerel olarak veya konsol üzerinden oturum açın
Fiziksel erişiminiz veya sağlayıcı konsolunuz (KVM, VNC, seri) varsa root veya sudo yetkili kullanıcı olarak oturum açın. Bu olmadan servis durumunu kontrol edemezsiniz. Konsolunuz yoksa sağlayıcıyla iletişime geçin.
- 4
SSH servis durumunu kontrol edin
systemctl status ssh(Debian/Ubuntu) veyasystemctl status sshd(RHEL/CentOS) komutunu çalıştırın. Servis etkin değilse başlatın:sudo systemctl start ssh(Debian/Ubuntu) veyasudo systemctl start sshd(RHEL/CentOS). Ardından sistem açılışında etkinleştirildiğini kontrol edin:sudo systemctl enable ssh(Debian/Ubuntu) veyasudo systemctl enable sshd(RHEL/CentOS). - 5
Hatalar için günlüklere bakın
journalctl -u ssh -n 50veyajournalctl -u sshd -n 50komutlarını kullanın. Başlatma sırasındaki hata mesajlarını arayın, örneğin "bind: Address already in use" veya "error: Bind to port 22 failed". Eski sistemlerde/var/log/auth.logveya/var/log/securedosyalarına bakın. - 6
sshd'nin hangi portta ve arayüzde dinlediğini kontrol edin
ss -tlnp | grep sshveyanetstat -tlnp | grep sshkomutunu çalıştırın. Local Address sütununa dikkat edin.127.0.0.1:22yazıyorsa sshd yalnızca yerel olarak dinliyor.0.0.0.0:2222yazıyorsa port 2222'dir./etc/ssh/sshd_configyapılandırmasındaPortveListenAddressdeğerlerini kontrol edin. - 7
Güvenlik duvarını kontrol edin
Ubuntu/Debian'da:
sudo ufw status verbose. RHEL/CentOS'ta:sudo firewall-cmd --list-all. SSH portunun izinli olduğundan emin olun. Bulut kullanıyorsanız sağlayıcı konsolundaki güvenlik grubunu veya ağ güvenlik duvarını kontrol edin. ufw kullanıyorsanız SSH portuna izin verebilirsiniz (örneğinsudo ufw allow 22/tcp). - 8
Yapılandırmayı düzeltin ve sshd'yi yeniden başlatın
/etc/ssh/sshd_configdosyasını değiştirdiyseniz sözdizimini kontrol edin:sudo sshd -t. Ardından servisi yeniden başlatın:sudo systemctl restart ssh(Debian/Ubuntu) veyasudo systemctl restart sshd(RHEL/CentOS). Yeniden başlatmanın mevcut bağlantıları kesebileceğini unutmayın, bu nedenle önceden alternatif erişim sağlayın. Her şey yolundaysa istemciden tekrar deneyin.
Hiçbir şey işe yaramazsa: gelişmiş kontroller
sshd etkinse ve 0.0.0.0:22 üzerinde dinliyorsa ancak bağlantı hala reddediliyorsa, başka bir güvenlik duvarı katmanı olup olmadığını kontrol edin (örneğin nftables kuralları, yasak ekleyen fail2ban). sudo nft list ruleset ve sudo fail2ban-client status sshd komutlarına bakın. Bulut ortamında genel IP adresinin örneğe doğru eşlendiğini kontrol edin. Test için sshd'yi geçici olarak başka bir portta başlatabilirsiniz: sudo sshd -p 2222 -d (hata ayıklama modu, oturumu kesmeyin). Sorun yalnızca bir istemciden ortaya çıkıyorsa yerel güvenlik duvarını veya VPN'i kontrol edin. Üretim sunucuları için kilitlenmeyi önlemek amacıyla mutlaka alternatif erişim (konsol, ikinci SSH portu) bulundurun.
Tekrarlanmaması için
- sshd servis durumunu ve günlükleri düzenli olarak kontrol edin
- Port ve güvenlik duvarı kuralı değişikliklerinin kaydını tutun
- Alternatif erişim sağlayın (konsol, ikinci port)
- SSH kullanılamamasını algılayan izleme kullanın
Ne zaman uzmana başvurmalı
Sunucuya konsolunuz veya alternatif erişiminiz yoksa ve SSH çalışmıyorsa kalıcı olarak kilitlenme riskiyle karşılaşırsınız. Bu durumda uzaktan kurtarma deneyimi olan bir IT destek ekibini aramanız daha iyidir.
BT altyapı bakımı · Sunucular, ağlar, yedekleme, güvenlik ve yardım masasıSık sorulan sorular
Ping başarılıyken neden "connection refused" alıyorum?
Ping ağ erişilebilirliğini test eder, servisi değil. Connection refused, ana bilgisayarın erişilebilir olduğu ancak o portta hiçbir sürecin bağlantıyı kabul etmediği anlamına gelir. En yaygın neden sshd'nin çalışmaması veya farklı bir portu dinlemesidir.
SSH'nin hangi portta çalıştığını nasıl öğrenirim?
Sunucuda `ss -tlnp | grep ssh` komutunu çalıştırın veya `/etc/ssh/sshd_config` dosyasına bakın (`Port` yönergesi). Sunucuya erişiminiz yoksa yöneticiye veya sağlayıcıya sorun.
sshd'yi yeniden başlatmak güvenli mi?
Yeniden başlatma mevcut SSH oturumlarını kesebilir ancak verileri silmez. Yeniden başlatmadan önce `sudo sshd -t` ile sözdizimini kontrol edin ve alternatif erişim (örneğin konsol) sağlayın. Yapılandırmadan emin değilseniz sshd'yi aynı oturum üzerinden yeniden başlatmayın.