SSH (Secure Shell), sunucu yönetimi için en yaygın kullanılan uzak erişim protokollerinden biridir. Ancak SSH bağlantı sorunları, sistem yöneticileri için ciddi engeller oluşturabilir.
SSH Erişim Problemlerinin Nedenleri
- Yanlış IP veya Hostname Kullanımı:
- SSH bağlantısında yanlış IP adresi veya alan adı kullanılması.
- Sunucunun IP adresinin değişmesi.
- SSH Servisinin Çalışmaması:
sshd
servisi çalışmıyorsa bağlantı sağlanamaz.systemctl status sshd
ile kontrol edilmelidir.
- Yanlış SSH Port Kullanımı:
- SSH varsayılan olarak 22. portu kullanır, ancak bazı sunucular özel portlar kullanır.
sshd_config
dosyasında belirtilen port doğrulanmalıdır.
- Güvenlik Duvarı (Firewall) Engellemeleri:
iptables
,ufw
veya bulut servis sağlayıcısının güvenlik kuralları nedeniyle SSH engellenebilir.ufw allow 22/tcp
veyaiptables -A INPUT -p tcp --dport 22 -j ACCEPT
komutları ile izin verilmelidir.
- Yanlış Yetkilendirme Ayarları:
- SSH anahtar doğrulama hataları.
/home/kullanıcı/.ssh/authorized_keys
dosyasındaki yanlış yapılandırmalar.
- SSH Anahtarlarının veya Parolanın Hatalı Olması:
- SSH anahtar dosyasının yanlış izinlere sahip olması.
- SSH kullanıcı şifresinin yanlış girilmesi.
- SSH Brute Force Engellemeleri:
- Fail2Ban veya benzeri güvenlik araçları, belirli giriş denemelerinden sonra IP’yi engelleyebilir.
fail2ban-client status sshd
komutu ile kontrol edilmelidir.
SSH Erişim Sorunlarını Teşhis Etme
1. SSH Servisinin Çalıştığını Kontrol Edin
systemctl status sshd
ile SSH servisini doğrulayın.- SSH servisi çalışmıyorsa
systemctl restart sshd
komutuyla yeniden başlatın.
2. SSH Portunun Açık Olduğunu Kontrol Edin
netstat -tulnp | grep ssh
veyass -tulnp | grep ssh
komutlarıyla SSH portunun açık olup olmadığını kontrol edin.- SSH farklı bir port kullanıyorsa,
/etc/ssh/sshd_config
dosyasında belirtilen portu öğrenin.
3. Güvenlik Duvarı ve Ağ Ayarlarını Kontrol Edin
iptables -L -n
veyaufw status
komutlarını çalıştırarak SSH trafiğinin engellenip engellenmediğini kontrol edin.iptables -F
ile güvenlik duvarı kurallarını sıfırlayın ve SSH erişimini tekrar deneyin.
4. SSH Bağlantı Günlüklerini İnceleyin
tail -f /var/log/auth.log
(Debian/Ubuntu) veyatail -f /var/log/secure
(CentOS/RHEL) komutlarıyla SSH hatalarını analiz edin.
5. SSH Anahtar ve Yetkilendirme Ayarlarını Kontrol Edin
chmod 600 ~/.ssh/authorized_keys
komutu ile yetkilendirme dosyasının izinlerini düzenleyin.ssh -vvv user@server_ip
komutuyla detaylı bağlantı günlüğünü görüntüleyin.
SSH Erişim Sorunlarını Giderme ve Çözümler
1. SSH Servisini ve Port Ayarlarını Düzeltin
✅ Eğer SSH servisi çalışmıyorsa şu komutu çalıştırın:
sudo systemctl restart sshd
✅ SSH servisi farklı bir port kullanıyorsa, bağlantıyı şu şekilde gerçekleştirin:
ssh -p 2222 user@server_ip
✅ /etc/ssh/sshd_config
dosyasında Port 22 olarak ayarlı olduğundan emin olun ve servisi yeniden başlatın.
2. Güvenlik Duvarı ve Ağ Ayarlarını Düzenleyin
✅ Eğer güvenlik duvarı SSH bağlantısını engelliyorsa şu komutları çalıştırarak izin verin:
sudo ufw allow 22/tcp
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
✅ Eğer Fail2Ban tarafından engellenmişseniz, IP adresinizi serbest bırakın:
sudo fail2ban-client set sshd unbanip YOUR_IP_ADDRESS
3. SSH Yetkilendirme Ayarlarını Düzeltin
✅ SSH anahtar doğrulaması için aşağıdaki komutları çalıştırarak dosya izinlerini düzeltebilirsiniz:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
✅ SSH anahtarınızı yeniden oluşturup sunucuya eklemek için:
ssh-keygen -t rsa -b 4096
ssh-copy-id user@server_ip
4. Ağ Bağlantısını ve IP Değişikliklerini Kontrol Edin
✅ SSH bağlantısının sunucu IP adresinin değişmesi nedeniyle başarısız olup olmadığını kontrol edin:
dig +short myip.opendns.com @resolver1.opendns.com
✅ Eğer IP adresi değişmişse, DNS kayıtlarını ve erişim izinlerini güncelleyin.
Yorum gönder