SSH, bir ağ üzerinden uzaktaki bir sisteme güvenli bir şekilde erişmenizi ve bunları yönetmenizi sağlayan bir ağ protokolüdür. Uzak bir makineye SSH ile bağlanırken "bağlantı reddedildi" hatasıyla karşılaşmış olabilirsiniz. Özellikle bir sistem yöneticisiyseniz ve acil olarak uzaktaki sistemde bazı görevleri gerçekleştirmeniz gerekiyorsa, bu sorunu yaşamak sinir bozucu olabilir.
SSH "bağlantı reddedildi" hatası almanın olası nedenlerinden bazılarına ve bunu çözme yöntemlerine bakalım.
1. Bir SSH Sunucusunun Yüklü Olup Olmadığını Kontrol Edin
"Bağlantı reddedildi" hatasının olası bir nedeni, uzak makinenin çalışmıyor olmasıdır. bir SSH sunucusu. SSH sunucusu olmadan makine gelen SSH bağlantılarını kabul etmeyecek ve ona uzaktan erişemeyeceksiniz.
Bu nedenle, hatayı gidermenin ilk adımı, uzak makinede bir SSH sunucusunun kurulu olup olmadığını kontrol etmektir. SSH sunucu kurulumunu doğrulamak için aşağıdaki komutu kullanın:
Debian tabanlı dağıtımlarda:
dpkg --liste | grep ssh
RHEL tabanlı dağıtımlarda:
yum listesi yüklendi | grep ssh
openSUSE'de:
zypper arama -i | grep ssh
Arch tabanlı dağıtımlarda:
pacman -S | grep ssh
Uzak makinede SSH sunucusu kuruluysa, çıktıda listelendiğini göreceksiniz. Aksi takdirde, OpenSSH sunucusunu uzak makineye kurun SSH ile erişmek istiyorsunuz. OpenSSH, sistemlere uzaktan erişim ve kontrol için SSH araçlarının açık kaynaklı bir sürümüdür.
OpenSSH sunucusunu kurmak için aşağıdaki komutları kullanın:
Debian tabanlı dağıtımlarda:
sudo apt install openssh-server
RHEL tabanlı dağıtımlarda:
sudo yum openssh-server'ı kur
openSUSE'de:
sudo zypper install openssh
Arch tabanlı dağıtımlarda:
pacman -S açılır
2. SSH Hizmet Durumunu Kontrol Edin
"Bağlantı reddedildi" hatası almanın bir başka nedeni de SSH hizmetinin devre dışı bırakılması veya uzak makinede çalışmaması olabilir. SSH sunucusunun kurulu olduğundan emin olduktan sonra kontrol etmeniz gereken ikinci şey sunucunun durumudur.
sudo systemctl durumu sshd
Hizmet çalışıyorsa ve çalışıyorsa, çıktı bunu şu şekilde gösterecektir: aktif (çalışıyor). Aksi takdirde, şöyle bir şey göreceksiniz etkin değil (ölü).
SSH sunucusu çalışmıyorsa, aşağıdaki komutu kullanarak manuel olarak başlatabilirsiniz:
sudo systemctl sshd'yi başlat
Ayrıca hizmetin açılışta otomatik olarak başlamasını şu şekilde etkinleştirebilirsiniz:
sudo systemctl sshd'yi etkinleştir
3. SSH Bağlantı Noktasını Kontrol Edin
Varsayılan olarak, SSH sunucusu 22 numaralı bağlantı noktasında çalışır. Ancak, varsayılan bağlantı noktası değiştirilebilir. Bu nedenle, SSH "bağlantı reddedildi" hatası alırsanız, bunun nedeni SSH sunucusuna farklı bir bağlantı noktasında çalışırken varsayılan 22 numaralı bağlantı noktasından bağlanmaya çalışıyor olmanız olabilir.
Yapabilirsiniz netstat komutunu kullanın SSH sunucusunun dinlediği bağlantı noktasını bulmak için grep ile:
sudo netstat -plntu | grep ssh
SSH portunu da şuradan bulabilirsiniz: sshd_config aşağıdaki komutu kullanarak dosya:
grep bağlantı noktası /etc/ssh/sshd_config
Doğru SSH bağlantı noktasını belirledikten sonra, uzak sisteminize o bağlantı noktasını kullanarak bağlanmayı deneyin.
4. Sisteminizin Güvenlik Duvarını Kontrol Edin
Bağlantı sorunlarının çoğu, makinenizin güvenlik duvarının bazı bağlantı noktalarını veya hizmetleri engellemesi nedeniyle oluşur. Uzak makinede SSH sunucusu kurulu ve çalışıyorsa, bir sonraki adım güvenlik duvarınızı kontrol etmektir.
Güvenlik duvarının bağlantıyı engelleyip engellemediğini anlamak için aşağıdaki komutları kullanarak güvenlik duvarını geçici olarak devre dışı bırakın:
Debian ve Arch tabanlı Linux dağıtımlarında:
sudo ufw'yi devre dışı bırak
RHEL tabanlı dağıtımlarda ve openSUSE'de:
sudo systemctl firewalld'yi devre dışı bırak
Güvenlik duvarını devre dışı bıraktıktan sonra hata görünmüyorsa, güvenlik duvarının bağlantıyı engellediği anlamına gelir. Bu durumda güvenlik duvarını yeniden etkinleştirin ve SSH'ye izin veren bir kural ekleyin.
Debian ve Arch tabanlı Linux dağıtımlarında, SSH'ye izin vermek için aşağıdaki komutu kullanın. UFW güvenlik duvarı:
sudo ufw ssh'ye izin ver
Alternatif olarak, güvenlik duvarındaki bağlantı noktası numarasıyla da SSH'ye izin verebilirsiniz. Diyelim ki SSH sunucusu 5555 numaralı bağlantı noktasını kullanıyor, ardından güvenlik duvarında buna izin vermek için aşağıdaki komutu kullanırsınız:
sudo ufw 5555'e izin ver
Kuralın başarıyla eklenip eklenmediğini doğrulamak için UFW durumunu kontrol edin:
sudo ufw durumu
RHEL tabanlı dağıtımlarda ve openSUSE'de, güvenlik duvarında SSH'ye izin vermek için aşağıdaki komutu kullanın:
sudo güvenlik duvarı-cmd --permanent --add-service=ssh
Bağlantı noktası numarasına göre SSH'ye izin vermek için aşağıdaki komutu kullanın:
sudo firewall-cmd --permanent --add-port={port}/tcp
4444 numaralı bağlantı noktasında çalışan bir SSH sunucusu için komut şöyle olacaktır:
sudo firewall-cmd --permanent --add-port=4444/tcp
Kuralın güvenlik duvarına başarıyla eklendiğini doğrulamak için şunu çalıştırın:
sudo güvenlik duvarı-cmd --list-all
5. IP Adresi Çakışmalarını Çözün
SSH sunucusu IP'sinin ağdaki başka bir sistemin IP'si ile çakışması nedeniyle SSH "bağlantı reddedildi" hatası oluşma olasılığı da vardır. Bu, bir ağdaki iki sistem aynı IP adresine sahip olduğunu iddia ettiğinde gerçekleşir ve sonuç olarak IP çakışması.
Ağınızda bir IP çakışması olup olmadığını doğrulamak için arp-tarama aracını aşağıdaki gibi kullanın:
arp taraması [ağ kimliği]
Bir IP çakışması varsa, çıktıda yinelenen IP adresini göreceksiniz. Aşağıdaki ekran görüntüsü, bir ağdaki IP çakışmasına bir örnektir:
IP çakışmalarını önlemek için hiçbir cihazın DHCP havuz adresleriyle çakışan statik IP adresleri olmadığından emin olun.
Bonus İpucu: SSH'yi Ayrıntılı Modda Çalıştırın
Bir SSH hatasıyla karşılaştığınızda, sorunu takip etmek için ssh komutunu ayrıntılı modda çalıştırmayı deneyin. SSH'yi ayrıntılı modda çalıştırmak için, ssh komutunu -vvv seçenek şu şekilde:
ssh -vvv kullanıcıadı@ip_adresi
Ayrıntılı modda, bağlantının her adımında sorunun nerede olduğunu anlamanıza yardımcı olacak hata ayıklama mesajları göreceksiniz.
Linux'ta SSH "Bağlantı Reddedildi" Hatasında Sorun Giderme
SSH bağlantı hatasının olası nedenlerini belirleyerek ve önerilen çözümleri uygulayarak, SSH "bağlantı reddedildi" hatasını giderebilecek ve çözebileceksiniz. Bu adımlara ek olarak, doğru IP adresine bağlandığınızdan ve doğru oturum açma bilgilerini kullandığınızdan emin olun.
Uzak bağlantınızı daha güvenli hale getirmek için Linux'ta SSH için iki faktörlü kimlik doğrulamayı ayarlayabilirsiniz.