SSH Bağlantısı Kurulamıyor – “Connection Refused” Hatası Çözümü
SSH Bağlantısı Kurulamıyor – “Connection Refused” Hatası Çözümü
Bir Linux sunucuya SSH ile bağlanmaya çalıştığınızda “Connection refused” hatası alıyorsanız, bu durum genellikle SSH servisinin çalışmaması, güvenlik duvarı (firewall) kuralı veya yanlış bağlantı ayarlarından kaynaklanır. Bu rehberde, SSH bağlantı hatalarının nedenlerini adım adım inceleyip pratik çözümler sunuyoruz.
- 1. Hatanın Anlamı
- 2. SSH Servisinin Çalıştığını Kontrol Edin
- 3. SSH Port Ayarlarını Doğrulayın
- 4. Güvenlik Duvarı (Firewall) Ayarlarını Kontrol Edin
- 5. Sunucu IP veya Hostname Doğruluğunu Kontrol Edin
- 6. SSH Portuna Erişim Testi (nc / telnet)
- 7. “Connection Refused” – Örnek Senaryolar
- 8. SSH Servis Loglarını İnceleyin
- 9. SELinux Engellerini Kontrol Edin (CentOS / RHEL)
- 10. Ağ Seviyesinde Sorun Giderme
- 11. Fail2Ban veya Güvenlik Modülleri
- 12. SSH Servisini Yeniden Başlatma
- Sonuç
1. Hatanın Anlamı
“Connection refused”, istemcinin uzak sunucuya bağlanma isteği gönderdiği ancak hedef sistemin bağlantıyı reddettiği anlamına gelir. Yani bağlantı isteği ulaşmıştır ancak sunucu bağlantıyı kabul etmemiştir.
2. SSH Servisinin Çalıştığını Kontrol Edin
İlk adımda, uzak sistemde SSH daemon’un (sshd) aktif olup olmadığını kontrol edin:
sudo systemctl status ssh
Servis durdurulmuşsa şu komutla başlatabilirsiniz:
sudo systemctl start ssh sudo systemctl enable ssh
Ubuntu türevlerinde servis adı ssh, CentOS/RHEL’de ise sshd olabilir.
3. SSH Port Ayarlarını Doğrulayın
Varsayılan SSH portu 22’dir. Ancak güvenlik nedeniyle bazı sistemlerde değiştirilebilir. Sunucuda kullanılan portu kontrol etmek için:
sudo cat /etc/ssh/sshd_config | grep Port
Belirtilen port üzerinden dinleme yapılıp yapılmadığını test edin:
sudo netstat -tlnp | grep ssh # veya sudo ss -tlnp | grep ssh
4. Güvenlik Duvarı (Firewall) Ayarlarını Kontrol Edin
Bağlantı engellenmiş olabilir. Gerekli portların açık olduğundan emin olun:
# Ubuntu / Debian sudo ufw allow 22/tcp sudo ufw reload # CentOS / RHEL sudo firewall-cmd --permanent --add-port=22/tcp sudo firewall-cmd --reload
Sunucu bir bulut ortamında (ör. AWS, Azure, HostLigo VDS) barındırılıyorsa, panel üzerinden “Security Group” veya “Firewall” kurallarını da kontrol edin.
5. Sunucu IP veya Hostname Doğruluğunu Kontrol Edin
Yanlış IP adresi veya DNS çözümleme hataları da bağlantı reddine neden olabilir. Bağlanmaya çalıştığınız adresi doğrulayın:
ping yourserver.com dig yourserver.com
6. SSH Portuna Erişim Testi (nc / telnet)
Bağlantının ağ katmanında engellenip engellenmediğini test edin:
nc -zv yourserver.com 22 # veya telnet yourserver.com 22
Bağlantı sağlanamıyorsa, sorun büyük ihtimalle firewall veya ağ yönlendirmesindedir.
7. “Connection Refused” – Örnek Senaryolar
- SSH servisi kapalı: “systemctl start sshd” komutu ile çözülür.
- Firewall portu kapalı: “ufw allow 22/tcp” veya “firewall-cmd –add-port=22/tcp” ile açın.
- Yanlış IP/port: “ssh user@ip -p 2222” şeklinde doğru port ile deneyin.
- Cloud sağlayıcı kuralı: Panel üzerinden dış bağlantı izinlerini kontrol edin.
8. SSH Servis Loglarını İnceleyin
Detaylı hata nedenini görmek için:
sudo journalctl -xe | grep ssh # veya sudo tail -f /var/log/auth.log
“Connection refused” dışında “Permission denied” veya “Connection timed out” mesajları da farklı sebeplere işaret eder.
9. SELinux Engellerini Kontrol Edin (CentOS / RHEL)
SELinux aktifse, SSH port değişikliği veya özel konfigürasyonlarda erişimi kısıtlayabilir:
sudo getenforce # Permissive veya Enforcing olabilir.
Port 22 dışındaki bağlantılarda SELinux’a yeni port ekleyin:
sudo semanage port -a -t ssh_port_t -p tcp 2222
10. Ağ Seviyesinde Sorun Giderme
Sunucunun gerçekten çalışır durumda olduğundan emin olun:
ping traceroute
HostLigo VDS veya fiziksel sunucularda, ağ kartı yapılandırması (/etc/netplan veya ifcfg) hatalıysa SSH erişimi engellenebilir.
11. Fail2Ban veya Güvenlik Modülleri
Çok fazla yanlış parola denemesi yapıldığında Fail2Ban IP’nizi engellemiş olabilir:
sudo fail2ban-client status sshd sudo fail2ban-client unban <IP_ADRESİNİZ>
12. SSH Servisini Yeniden Başlatma
Değişikliklerden sonra servisi yeniden başlatın:
sudo systemctl restart ssh
Sonuç
“Connection refused” hatası genellikle SSH servisinin çalışmaması veya ağ kısıtlamasından kaynaklanır. Sistem yöneticileri için en iyi çözüm yaklaşımı, adım adım kontrol (servis, port, firewall, SELinux, ağ) yapmaktır. Eğer tüm adımlar doğruysa ve hâlâ bağlantı kurulamıyorsa, bulut sağlayıcınızın güvenlik politikalarını (örneğin HostLigo VDS firewall paneli) gözden geçirmeniz önerilir.