İçeriğe geç

SSH bağlantı reddedildi: sunucuya erişimi nasıl yeniden kurarsınız

Orta 15 dk Güncellendi:

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. 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. 2

    Sunucunun erişilebilir olup olmadığını kontrol edin

    İstemciden ping sunucu ve nc -vz sunucu 22 (veya telnet 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. 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. 4

    SSH servis durumunu kontrol edin

    systemctl status ssh (Debian/Ubuntu) veya systemctl status sshd (RHEL/CentOS) komutunu çalıştırın. Servis etkin değilse başlatın: sudo systemctl start ssh (Debian/Ubuntu) veya sudo systemctl start sshd (RHEL/CentOS). Ardından sistem açılışında etkinleştirildiğini kontrol edin: sudo systemctl enable ssh (Debian/Ubuntu) veya sudo systemctl enable sshd (RHEL/CentOS).

  5. 5

    Hatalar için günlüklere bakın

    journalctl -u ssh -n 50 veya journalctl -u sshd -n 50 komutları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.log veya /var/log/secure dosyalarına bakın.

  6. 6

    sshd'nin hangi portta ve arayüzde dinlediğini kontrol edin

    ss -tlnp | grep ssh veya netstat -tlnp | grep ssh komutunu çalıştırın. Local Address sütununa dikkat edin. 127.0.0.1:22 yazıyorsa sshd yalnızca yerel olarak dinliyor. 0.0.0.0:2222 yazıyorsa port 2222'dir. /etc/ssh/sshd_config yapılandırmasında Port ve ListenAddress değerlerini kontrol edin.

  7. 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ğin sudo ufw allow 22/tcp).

  8. 8

    Yapılandırmayı düzeltin ve sshd'yi yeniden başlatın

    /etc/ssh/sshd_config dosyasını değiştirdiyseniz sözdizimini kontrol edin: sudo sshd -t. Ardından servisi yeniden başlatın: sudo systemctl restart ssh (Debian/Ubuntu) veya sudo 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.

Paylaş
Çözüm bulamadınız mı?AI BT asistanı 7/24 hizmetinizde. Sorunu anlatın veya hatanın ekran görüntüsünü gönderin, durumunuza özel talimat alın.AI BT asistanına sorun