SSH Connection Refused Hatası Nasıl Çözülür? SSH Bağlantı Sorunu

kralbenim · 28 Eylül 2026 · 1 görüntülenme · 0 cevap

SSH Connection Refused hatası, bilgisayarınızın sunucuya ulaşabildiğini ancak bağlanmaya çalıştığınız IP adresi ve portta SSH bağlantısını kabul eden bir servis bulunmadığını veya bağlantının aktif olarak reddedildiğini gösterir. En sık nedenler SSH servisinin çalışmaması, yanlış port kullanılması, SSH'nin farklı bir adreste dinlemesi veya firewall kurallarıdır.


Örneğin:

ssh root@SUNUCU_IP

komutundan sonra:

Connection refused

hatası alıyorsanız önce kullanıcı adı veya parola yerine SSH servisi, port ve ağ yapılandırmasını kontrol etmek gerekir.

Connection Refused ile Permission Denied aynı hata değildir

Bu iki hata birbirinden farklıdır.

Connection Refused:

SSH sunucusuyla bağlantı kurulamıyor. Genellikle servis, port veya ağ yapılandırması araştırılır.

Permission Denied:

SSH sunucusuna ulaşılmıştır ancak kimlik doğrulama başarısız olmuştur. Kullanıcı, parola, SSH key veya yetkilendirme ayarları araştırılır.

Bu nedenle Connection refused hatasında ilk olarak parolayı değiştirmeye çalışmak çoğu durumda doğru başlangıç değildir.

1. Sunucu IP adresini kontrol edin

Öncelikle doğru IP adresine bağlandığınızdan emin olun.

Örnek:

ssh root@203.0.113.10

VPS sağlayıcınız sunucu IP'sini değiştirdiyse eski IP'ye bağlantı kurmaya çalışıyor olabilirsiniz.

Özellikle:

- Sunucu yeniden oluşturulduysa
- Yeni VPS kurulduysa
- IP değişikliği yapıldıysa
- DNS üzerinden bağlanıyorsanız

hedef adresi tekrar doğrulayın.

2. SSH hangi portu kullanıyor kontrol edin

SSH varsayılan olarak genellikle TCP 22 portunu kullanır.

Standart bağlantı:

ssh kullanici@SUNUCU_IP

şeklindedir.

Ancak SSH portu değiştirilmişse portu belirtmeniz gerekir.

Örneğin port 2222 ise:

ssh -p 2222 kullanici@SUNUCU_IP

kullanılır.

Sunucu 2222 portunda SSH beklerken 22 portuna bağlanmaya çalışırsanız bağlantı başarısız olabilir.

3. SSH servisi çalışıyor mu?

Sunucunun web konsolu veya hosting sağlayıcısının konsol erişimi bulunuyorsa sunucuya buradan girerek SSH servisinin durumunu kontrol edebilirsiniz.

Ubuntu ve Debian sistemlerinde servis adı çoğunlukla:

ssh

olabilir.

Kontrol:

sudo systemctl status ssh

Bazı dağıtımlarda servis:

sshd

olarak adlandırılır:

sudo systemctl status sshd

Servis durmuşsa bunun nedenini araştırmak gerekir.

Gerekirse uygun servis adıyla:

sudo systemctl start ssh

veya:

sudo systemctl start sshd

kullanılabilir.

4. SSH servisinin otomatik başlamasını kontrol edin

Sunucu reboot sonrasında SSH başlamıyorsa systemd servisinin etkin olup olmadığını kontrol edebilirsiniz.

Örneğin:

sudo systemctl is-enabled ssh

Gerekliyse ve dağıtımınızda servis adı ssh ise:

sudo systemctl enable ssh

kullanılabilir.

Servis adının sisteminize göre değişebileceğini unutmayın.

5. SSH gerçekten port dinliyor mu?

Sunucu konsolundan:

ss -lntp

komutunu kullanabilirsiniz.

22 portunu kontrol etmek için:

ss -lntp | grep ':22'

kullanılabilir.

SSH farklı bir port kullanıyorsa o portu kontrol edin.

Örneğin:

ss -lntp | grep ':2222'

Hiçbir sonuç görünmüyorsa SSH daemon beklediğiniz portta dinlemiyor olabilir.

6. SSH yapılandırmasını kontrol edin

OpenSSH Server yapılandırması genellikle:

/etc/ssh/sshd_config

dosyasında bulunur.

Burada özellikle:

Port

ayarını kontrol edin.

Örneğin:

Port 2222

bulunuyorsa bağlantıda:

ssh -p 2222 kullanici@SUNUCU_IP

kullanılması gerekir.

Ancak SSH yapılandırma dosyasını değiştirirken son derece dikkatli olun.

Yanlış yapılandırma uzaktan erişiminizi tamamen kaybetmenize neden olabilir.

7. SSH yapılandırmasını değiştirmeden önce test edin

OpenSSH Server yapılandırmasında değişiklik yaptıktan sonra mevcut SSH oturumunu kapatmadan önce yapılandırmayı doğrulamak önemlidir.

Birçok sistemde:

sudo sshd -t

komutu yapılandırma sözdizimini kontrol etmek için kullanılabilir.

Komut hata vermiyorsa yapılandırmanın sözdizimi açısından geçerli olması beklenir.

Buna rağmen mevcut SSH oturumunu hemen kapatmayın.

Yeni bir terminal açarak ikinci bağlantının başarılı olduğunu doğrulamak güvenli bir yöntemdir.

8. Firewall SSH portunu engelliyor olabilir

Ubuntu sistemlerinde UFW kullanılıyorsa:

sudo ufw status

ile mevcut kuralları görebilirsiniz.

SSH 22 portunda çalışıyorsa gerekli kural yapılandırmaya göre örneğin:

sudo ufw allow 22/tcp

olabilir.

SSH 2222 portunda çalışıyorsa:

sudo ufw allow 2222/tcp

gibi ilgili port için izin gerekir.

Ancak firewall'u tamamen kapatmak yerine yalnızca gerekli portlara kontrollü izin vermek daha güvenlidir.

SSH portunu değiştirmeden önce firewall kuralını ekleyin.

Aksi halde mevcut bağlantınız kapandıktan sonra sunucuya tekrar erişemeyebilirsiniz.

9. Hosting sağlayıcısının firewall sistemini kontrol edin

Sunucunun kendi firewall'u dışında VPS sağlayıcısının:

- Cloud firewall
- Security group
- Network ACL
- Harici firewall

sistemi bulunabilir.

Linux içerisinde port açık olsa bile sağlayıcı panelinde SSH portu engellenmiş olabilir.

Bu nedenle sorun devam ediyorsa hem işletim sistemi hem de sağlayıcı tarafındaki ağ kurallarını kontrol edin.

10. SSH yalnızca belirli bir IP adresinde dinliyor olabilir

sshd_config içerisindeki ListenAddress gibi ayarlar SSH servisinin hangi adreslerde dinleyeceğini etkileyebilir.

SSH yalnızca localhost üzerinde dinliyorsa dışarıdan bağlantı kurulamaz.

Kontrol için:

ss -lntp

çıktısı oldukça faydalıdır.

Örneğin:

0.0.0.0:22

veya uygun IPv6 gösterimi SSH'nin ilgili arayüzlerde dinlediğini gösterebilir.

Yapılandırmayı değiştirirken sunucunun ağ mimarisini dikkate alın.

11. OpenSSH Server kurulu olmayabilir

Özellikle yeni veya minimal Linux kurulumlarında SSH istemcisi bulunmasına rağmen OpenSSH Server kurulu olmayabilir.

Debian veya Ubuntu tabanlı sistemlerde paket durumu kontrol edilebilir.

Gerekliyse:

sudo apt update

ardından:

sudo apt install openssh-server

kullanılabilir.

Kurulumdan sonra:

sudo systemctl status ssh

ile servis kontrol edilebilir.

Ancak uzaktaki sunucuya zaten SSH ile erişemiyorsanız bu işlemleri sağlayıcının web/VNC/seri konsolu gibi alternatif erişimi üzerinden yapmanız gerekebilir.

12. Sunucu gerçekten çalışıyor mu?

Connection Refused hatasında yalnızca SSH'ye odaklanmadan VPS'nin durumunu da kontrol edin.

Hosting panelinden:

- Sunucu açık mı?
- Reboot işlemi tamamlandı mı?
- Ağ arayüzü çalışıyor mu?
- Doğru IP atanmış mı?

kontrol edilebilir.

Sunucunun web sitesi çalışıyor olsa bile SSH servisi durmuş olabilir. Aynı şekilde SSH sorunu olması bütün sunucunun kapalı olduğu anlamına gelmez.

13. Port dışarıdan erişilebilir mi?

İstemci bilgisayarınızdan uygun araçlarla belirli porta bağlantı testi yapılabilir.

Örneğin Linux veya macOS ortamında nc kuruluysa:

nc -vz SUNUCU_IP 22

kullanılabilir.

SSH farklı porttaysa:

nc -vz SUNUCU_IP 2222

şeklinde test edilebilir.

Windows tarafında PowerShell ile:

Test-NetConnection SUNUCU_IP -Port 22

kullanılabilir.

Bu testler port seviyesinde bağlantının kurulup kurulamadığını anlamaya yardımcı olur.

14. SSH portunu değiştirmek güvenliği artırır mı?

Varsayılan 22 portunu değiştirmek internetteki otomatik tarama ve log gürültüsünü azaltabilir ancak tek başına güçlü bir güvenlik önlemi değildir.

Asıl önemli önlemler:

- SSH key kullanmak
- Güçlü kimlik doğrulama politikaları
- Gereksiz root girişini sınırlandırmak
- Firewall kullanmak
- Sistemi güncel tutmak
- Başarısız girişleri takip etmek

gibi uygulamalardır.

Sadece port değiştirmek sunucuyu güvenli hale getirmez.

15. SSH ayarını değiştirdikten sonra bağlantı kesildiyse ne yapılmalı?

Yanlış port veya firewall yapılandırması nedeniyle kendinizi sunucunun dışında bıraktıysanız VPS sağlayıcısının:

- Web console
- VNC console
- Serial console
- Rescue mode

gibi alternatif erişim yöntemleri kullanılabilir.

Bu nedenle SSH veya firewall ayarlarında kritik değişiklik yapmadan önce sağlayıcınızda alternatif konsol erişiminin bulunduğunu bilmek önemlidir.

16. fail2ban Connection Refused oluşturur mu?

Fail2ban belirli IP adreslerini engellemek için firewall kuralları oluşturabilir.

Ancak engellenen bağlantının istemci tarafında nasıl göründüğü kullanılan firewall kuralına göre değişebilir; her durumda mutlaka Connection refused görülmez.

Belirli bir IP'den bağlanamıyor ancak başka ağdan bağlantı kurulabiliyorsa:

- Fail2ban
- Firewall
- IP bazlı erişim kuralları

incelenebilir.

Sunucu konsolundan Fail2ban durumunu kontrol etmek için yapılandırmaya bağlı olarak:

sudo fail2ban-client status

kullanılabilir.

17. SSH logları nasıl kontrol edilir?

Dağıtıma göre SSH kayıtları farklı yerlerde bulunabilir.

Ubuntu/Debian sistemlerinde örneğin:

/var/log/auth.log

kullanılabilir.

systemd journal üzerinden de:

journalctl -u ssh

veya servis adına göre:

journalctl -u sshd

kontrol edilebilir.

Ancak istemci daha SSH servisine ulaşamıyorsa bağlantı denemesi authentication loglarına hiç gelmeyebilir.

Bu da sorunun kimlik doğrulamadan önceki bir aşamada olduğunu düşündürebilir.

18. Connection Timed Out ile Connection Refused farkı

Bu iki hata da birbirinden ayrılmalıdır.

Connection Refused

Hedefe erişilmiş ancak ilgili bağlantı kabul edilmemiş olabilir. Yanlış port veya çalışmayan servis sık görülen nedenlerdir.

Connection Timed Out

Bağlantı isteğine belirlenen sürede yanıt alınamamıştır. Firewall'un paketleri düşürmesi, ağ problemi, yanlış IP veya sunucunun erişilememesi gibi nedenler araştırılabilir.

Hata mesajındaki bu ayrım sorunun kaynağını bulmayı kolaylaştırır.

19. Permission Denied görmeye başladıysanız ilerleme kaydetmiş olabilirsiniz

Başlangıçta:

Connection refused

alırken düzenleme sonrasında:

Permission denied

görüyorsanız artık SSH servisine ulaşabiliyor olabilirsiniz.

Bu durumda problem farklı aşamaya geçmiştir.

Artık:

- Kullanıcı adı
- Parola
- SSH key
- authorized_keys
- PasswordAuthentication
- PubkeyAuthentication
- Root giriş politikası

gibi kimlik doğrulama ayarları incelenmelidir.

SSH Connection Refused için hızlı kontrol sırası

Sorunu araştırırken şu sıra kullanılabilir:

1. Sunucunun açık olduğunu doğrulayın.
2. Doğru IP adresini kontrol edin.
3. Doğru SSH portunu kullandığınızdan emin olun.
4. Sağlayıcının web konsoluna erişin.
5. systemctl status ssh veya sshd ile servisi kontrol edin.
6. ss -lntp ile SSH'nin hangi portta dinlediğini bulun.
7. sshd_config içerisindeki port ve dinleme ayarlarını kontrol edin.
8. sshd -t ile yapılandırmayı doğrulayın.
9. Sunucunun firewall kurallarını kontrol edin.
10. VPS sağlayıcısının harici firewall kurallarını kontrol edin.
11. Logları inceleyin.
12. Değişikliklerden sonra yeni bir terminalden SSH bağlantısını test edin.

En önemli güvenlik uyarısı

SSH üzerinde uzaktan çalışırken aynı anda:

- SSH portunu değiştirmek
- Firewall kurallarını değiştirmek
- Root erişimini kapatmak
- Parola girişini kapatmak

gibi birden fazla kritik değişikliği doğrulamadan uygulamak sunucu erişiminizi tamamen kaybetmenize neden olabilir.

Daha güvenli yöntem değişiklikleri tek tek yapmak ve her değişiklikten sonra ikinci bir SSH oturumuyla bağlantıyı doğrulamaktır.

Özetle, SSH Connection Refused hatasında önce parola veya SSH key yerine bağlantı katmanını kontrol etmek gerekir. Doğru IP ve port kullanıldığını doğrulayın, SSH servisinin çalıştığını ve ilgili portu dinlediğini kontrol edin, ardından firewall ve hosting sağlayıcısının ağ kurallarını inceleyin.

SSH servisine bağlantı kurulduktan sonra Permission Denied gibi bir hata alınırsa artık kullanıcı ve kimlik doğrulama ayarlarına geçilebilir.