SSH Bağlantılarında Hata Ayıklama

How Debug Ssh Connections



Bu öğretici, SSH'ye bağlanamadığınız zamanlar, Kimlik Doğrulama hataları vb. dahil olmak üzere çeşitli SSH bağlantılarını teşhis etmek için kullanabileceğiniz bazı hızlı yöntem ve teknikleri gözden geçirecektir.

NOT: Başlamadan önce, bağlanmak istediğiniz cihazın çevrimiçi olduğundan ve hatanın cihazın kullanılamamasından kaynaklanmadığından emin olun.







Sorun 1: SSH Hizmeti Çalışmıyor

SSH bağlantı hatalarının yaygın bir nedeni, hizmetin uzak ana bilgisayarda çalışmıyor olmasıdır. Bunun nedeni, hizmetin yanlışlıkla kapatılması veya sistemin yeniden başlatılmasından sonra hizmetin başlamaması olabilir.



SSH hizmetinin çalışıp çalışmadığını kontrol etmek için şu komutu kullanarak sistem yöneticisini kullanın:



sudosystemctl durumu sshd

Yukarıdaki komut, aşağıdaki ekran görüntülerinde gösterildiği gibi hizmetin çalışıp çalışmadığını bildirmelidir.







Çözüm

Hizmetin çalışmamasından kaynaklanan SSH sorunlarını çözmek için hizmeti başlatmak için sistemi kullanın. Hizmet hatalarla yanıt verirse günlükleri kontrol edin ve günlükte bildirilen sorunları düzeltin.

Hizmet günlüklerini kontrol etmek için aşağıdaki komutu kullanın.

kavramak 'sshd' /nerede/kayıt/auth.log

systemd kullanarak SSH hizmetini başlatmak veya durdurmak için aşağıdaki komutu kullanın.

sudosystemctl sshd'yi başlat

Sorun 2: Standart Olmayan Bağlantı Noktasında SSH

SSH bağlantılarında hata ayıklarken ikinci yaygın sorun, standart olmayan bir bağlantı noktasının kullanılmasıdır. SSH, varsayılan 22 numaralı bağlantı noktası dışında başka bir bağlantı noktasında çalışıyorsa, SSH'nin çalıştığı bağlantı noktasını açıkça belirtmediğiniz sürece uzak ana bilgisayara bağlanmayacaksınız.

SSH'nin çalıştığı bağlantı noktasını görüntülemek için aşağıdaki gibi netstat gibi bir araç kullanın:

[yüzlerce@sentos8 ~]$sudo netstat -ptln | kavramak ssh
tcp0 00.0.0.0:560.0.0.0:*DİNLEMEK1131/sshd
tcp60 0:::56:::*DİNLEMEK1131/sshd

Yukarıdaki çıktı, SSH hizmetinin hangi bağlantı noktasında çalıştığını gösterir. Bu durumda, 56 numaralı bağlantı noktasıdır.

Çözüm

Bu sorunu çözmek için, ssh komutunuzda bağlantı noktasını açıkça belirtmek için netstat'tan gelen bilgileri kullanabilirsiniz:

sshKullanıcı adı@ip -P 56

Sorun 3: Aynı bağlantı noktasını kullanan başka bir Hizmet

SSH bağlantı hatalarının bir başka nedeni de başka bir hizmet veya işlemin SSH hizmetiyle aynı bağlantı noktasını kullanmasıdır. Örneğin, SSH açıkça 80 numaralı bağlantı noktasında çalışacak şekilde belirtilmişse (korkunç fikir), Apache gibi bir hizmet aynı bağlantı noktasını kullanıyor olabilir.

Başka bir işlemin SSH ile aynı bağlantı noktasını kullanıp kullanmadığını görmek için, şu komutu kullanarak günlükleri kontrol edin:

sudodergictl-Tsshd

Bu komut, başka bir işlemin SSH'ye bağlı bağlantı noktasını kullanıp kullanmadığını gösteren, aşağıda gösterilene benzer bir hata döndürmelidir.

sshd[110611]: hata: Bağlantı noktasına bağlan800.0.0.0'da başarısız oldu: Adres zateniçindekullanmak

Bağlantı noktası bağlama hatasının SELinux gibi güvenlik önlemlerinden değil, başka bir hizmetten kaynaklandığından emin olmak iyidir.

Çözüm

Bu sorunu çözmek için kullanabileceğiniz çeşitli yollar vardır. Bunlar şunları içerir:

Birincisi, SSH hizmetini farklı bir bağlantı noktasına bağlamaktır. Bunu SSH yapılandırma dosyasını düzenleyerek yapabilirsiniz. Örneğin, komutlarda gösterildiği gibi Bağlantı Noktası girişini bağlantı noktası 3009 olarak değiştirin:

sudo nano /vesaire/ssh/sshd_config
Liman3009

Bu sorunu çözmek için kullanabileceğiniz başka bir yöntem de hizmeti SSH bağlantı noktasını kullanarak durdurmaktır. Örneğin, 80 numaralı bağlantı noktasını kullanarak apache hizmetini şu şekilde durdurun:

sudosystemctl httpd'yi durdur
sudosystemctl httpd'yi devre dışı bırak

4. Sorun: Güvenlik Duvarı

Yukarıdaki yöntemlerin hepsini denediyseniz ve hala SSH bağlantısı yoksa, sorunun bir sonraki olası nedenine geçebilirsiniz: Güvenlik duvarı kısıtlamaları. Kullandığınız Güvenlik Duvarı yöntemine (UFW veya Iptables) bağlı olarak, güvenlik duvarının SSH bağlantılarına izin verdiğinden emin olmanız gerekir.

Çözüm

Güvenlik duvarı kuralları geniştir ve sistem yapılandırmasına bağlı olarak değişebilir. Bu nedenle, her yönü kapsayamıyorum. Ancak, UFW Güvenlik Duvarında SSH hizmetine izin verilmesini sağlamak için aşağıdaki basit bir çözümdür.

sudoufw izin ver<ssh_port> /tcp

Ayrıca tüm UFW kurallarını sıfırlayabilir ve baştan başlayabilirsiniz. Bu, güvenlik duvarı bağlantılarını sıfırdan gidermenize olanak tanır.

sudoufw sıfırlama

Sorun 5: Devre Dışı Bırakılan Parola Oturumları

Bazen SSH'yi parola oturum açmalarını kabul etmeyecek ve yalnızca ortak anahtar kimlik doğrulamasını kullanacak şekilde yapılandırabilirsiniz. Ortak anahtar sunucuda mevcut değilse veya özel anahtar çiftiniz eksikse bu soruna neden olabilir.

Parola oturumlarına izin verilip verilmediğini kontrol etmek için ssh yapılandırmasını şu şekilde yazın:

[yüzlerce@centos8]$sudo kavramakŞifre Doğrulama/vesaire/ssh/sshd_config
#PasswordAuthentication evet
Şifre DoğrulamaEvet
# Şifre Doğrulama. PAM yapılandırmanıza bağlı olarak,
# PAM kimlik doğrulaması, ardından bunu etkinleştirin ancak PasswordAuthentication'ı ayarlayın

Yukarıdaki çıktı, parola girişlerine izin verildiğini gösterir.

Çözüm

Yukarıdaki sorunu çözmek için iki yöntem kullanabilirsiniz:

Öncelikle, değeri hayır olarak ayarladıysanız, PasswordAuthentication değerini evet olarak değiştirin ve ssh hizmetini yeniden başlatın.

Diğer yöntem, bir ssh anahtar/değer çifti oluşturmak ve bunu sunucuda oturum açmak için kullanmaktır. ssh anahtar/değer çiftinin nasıl oluşturulacağını öğrenmek için aşağıdaki kılavuzu kullanın.

https://linuxhint.com/find-ssh-public-key/

https://linuxhint.com/use-ssh-copy-id-command/

Çözüm

Bu hızlı kılavuzda, SSH bağlantı hatalarının başlıca nedenlerini ve bunları nasıl çözebileceğinizi tartıştık. Bu kılavuz genel sorunları kapsamasına rağmen, yapılandırma ve izinlere bağlı olarak sisteminize özel hatalar bulabilirsiniz.