Sorun gidermeBağlantı sorunları
SSH bağlantı sorunlarını çözün: refused, timed out, denied
Sık SSH hatalarını çözün: Connection refused, Connection timed out, Permission denied (publickey), değişen host anahtarı ve Too many authentication failures.
- Başlangıç
- 12 dk okuma
- Güncellendi
Denendiği sistemler: Ubuntu 24.04 LTS, Ubuntu 26.04 LTS, Debian 12, Debian 13, Windows 11, macOS Tahoe 26
Bu sayfada
- Başlamadan önce
- Hızlı test: porta ulaşılabiliyor mu?
- ssh: connect to host … port 22: Connection timed out
- ssh: connect to host … port 22: Connection refused
- Permission denied (publickey)
- Permission denied, please try again.
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- Received disconnect … Too many authentication failures
- kex_exchange_identification: read: Connection reset by peer
- WARNING: UNPROTECTED PRIVATE KEY FILE!
- Ne zaman destek bildirimi açmalı?
- Sonraki adımlar
SSH hataları birbirine benzer, ama her biri farklı bir katmanı gösterir: ağ yolu, sunucudaki SSH servisi veya girişin kendisi. Gördüğünüz mesajı bulun, kontrolleri yapın ve çözümü uygulayın. Örneklerde 203.0.113.10 yerine sunucunuzun adresini, alex yerine kullanıcınızı yazın.
Başlamadan önce
- Sunucunun çalıştığından emin olun: durumunu Hizmetler › Ürünlerim altında, bilinen kesintileri Destek › Sunucu/Ağ Durumu sayfasında kontrol edin.
- Sunucuda bir şeyi düzeltmeniz gerekirse diye ikinci bir giriş yolu hazır tutun: hizmet sayfanızda görünüyorsa web konsolu ya da dedicated planınız içeriyorsa IPMI.
- Denemenin ayrıntılı kaydını alın; cevapların çoğu buradadır:
ssh -vvv alex@203.0.113.10Hızlı test: porta ulaşılabiliyor mu?
Linux ve macOS
nc -vz 203.0.113.10 22Windows
Test-NetConnection 203.0.113.10 -Port 22Succeeded / open, ağ yolunun ve SSH servisinin sorunsuz olduğu anlamına gelir; aşağıdaki giriş hatalarına bakın. Refused SSH servisini, timed out ağı veya bir güvenlik duvarını işaret eder.
ssh: connect to host … port 22: Connection timed out
Hiçbir yanıt gelmiyor. Olasılık sırasına göre nedenler:
- Yanlış adres veya port. Hizmet sayfasındaki Birincil IP ile karşılaştırın. SSH'yi başka bir porta taşıdıysanız
ssh -p 2222 [email protected]ile bağlanın. - Bir güvenlik duvarı trafiği düşürüyor. Sunucuda (ufw, nftables), ofisinizde veya ağınızda. Mobil erişim noktası gibi başka bir ağ deneyin. Orada çalışıyorsa kendi ağınız giden SSH'yi engelliyordur.
- Sunucu kapalı veya açılıyor. Durumunu müşteri panelinde kontrol edin; hizmet sayfanızda görünüyorsa web konsolunu açın.
Güvenlik duvarını yakın zamanda değiştirdiyseniz güvenlik duvarı değişikliğinden sonra erişimi kaybetmek rehberine bakın.
ssh: connect to host … port 22: Connection refused
Sunucu yanıt verdi ama 22 numaralı portu dinleyen bir şey yok. Web konsolundan servisi kontrol edin:
sudo systemctl status ssh
sudo ss -tlnp | grep -i ssh
sudo sshd -t- Servis durmuşsa
sudo systemctl start sshile başlatın.sudo sshd -t, başlamasını engelleyen yapılandırma hatalarını yazdırır. - Başka bir portu dinliyorsa o porta bağlanın.
- Ubuntu: SSH,
ssh.sockettarafından başlatılır.Portayarını değiştirdikten sonrasudo systemctl daemon-reloadvesudo systemctl restart ssh.socketçalıştırın; aksi halde eski port etkin kalır.
RHEL ailesi sistemlerde servisin adı sshd'dir.
Permission denied (publickey)
Sunucu yalnızca anahtar kabul ediyor ve istemcinizin sunduğu anahtarların hiçbiri kullanıcının authorized_keys dosyasında yok.
- Doğru kullanıcıyı kullandığınızı kontrol edin:
rootilealex'in anahtar dosyaları ayrıdır. - İstemciyi doğru anahtara yönlendirin:
ssh -i ~/.ssh/id_ed25519 [email protected]. - Sunucuda sahipliği ve izinleri kontrol edin; SSH, başkalarının yazabildiği dosyaları yok sayar:
ls -ld ~/.ssh
ls -l ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys- Nedeni sunucu kaydında okuyun:
sudo journalctl -u ssh --since "10 minutes ago".
Anahtar eklemek için SSH anahtarları rehberine bakın.
Permission denied, please try again.
Şifreyle giriş açık, ama kullanıcı adı veya şifre yanlış. Şifreler büyük/küçük harfe duyarlıdır ve yazarken hiçbir şey görünmez. Root girişleri kapalıysa (PermitRootLogin no) kendi kullanıcınızla giriş yapın. Birkaç başarısız denemeden sonra IP adresiniz Fail2ban veya CrowdSec tarafından engellenmiş olabilir; aşağıya bakın.
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
Sunucu, bilgisayarınızın kaydettiğinden farklı bir host anahtarı sunuyor. Yeniden kurulumdan sonra veya bir IP adresi yeni bir sunucuya verildiğinde bu beklenen bir durumdur. Yeniden kurulum yapmadıysanız bunu bir uyarı sayın ve devam etmeden önce bize sorun. Yeniden kurulumdan sonra yeni anahtarı kabul etmek için:
ssh-keygen -R 203.0.113.10Received disconnect … Too many authentication failures
SSH agent'ınız birkaç anahtar sundu ve sunucu sınıra (MaxAuthTries) ulaşınca durdu. Yalnızca doğru anahtarı sunun:
ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 alex@203.0.113.10Bunu ~/.ssh/config içinde IdentitiesOnly yes ve IdentityFile ile kalıcı hale getirin.
kex_exchange_identification: read: Connection reset by peer
Bağlantı SSH el sıkışmasından önce kesildi. Sık nedenler: IP adresiniz Fail2ban veya CrowdSec tarafından engellenmiştir, bir tarama sırasında MaxStartups aşılmıştır ya da bir güvenlik duvarı bağlantıyı sıfırlıyordur. Web konsolundan kontrol edin:
sudo fail2ban-client status sshd
sudo fail2ban-client set sshd unbanip 198.51.100.7198.51.100.7 yerine kendi genel IP adresinizi yazın. CrowdSec'te kararları sudo cscli decisions list ile listeleyin ve sizinkini sudo cscli decisions delete --ip 198.51.100.7 ile kaldırın.
WARNING: UNPROTECTED PRIVATE KEY FILE!
Özel anahtarınızı bilgisayarınızdaki başka kullanıcılar okuyabiliyor; bu yüzden istemci onu kullanmayı reddediyor.
Linux ve macOS
chmod 600 ~/.ssh/id_ed25519Windows
icacls $env:USERPROFILE\.ssh\id_ed25519 /inheritance:r /grant:r "$($env:USERNAME):(R)"Ne zaman destek bildirimi açmalı?
Port her ağdan kapalıysa ve web konsolu da çalışmıyorsa ya da sunucu hiç yanıt vermiyorsa bir destek bildirimi açın. İlişkili Hizmet altında sunucuyu seçin ve şunları ekleyin:
ssh -vvvçıktısı (şifreleriniz dışında hiçbir şeyi silmeyin),- bilgisayarınızdan
mtr -rwc 50 203.0.113.10veyapathping 203.0.113.10çıktısı, - sorun başlamadan önce neyin değiştiği.
Sonraki adımlar
- Erişim kayıplarını önleyin: SSH sıkılaştırma ve Fail2ban ve CrowdSec.
- Hiçbir şey yanıt vermiyor mu? Sunucuya erişilemiyor.
Sık sorulan sorular
Refused ile timed out arasındaki fark nedir?
Refused, sunucunun yanıt verdiği ama o portu dinleyen bir şey olmadığı anlamına gelir; SSH servisi durmuştur veya başka bir porttadır. Timed out hiçbir yanıt gelmediği anlamına gelir: bir güvenlik duvarı paketleri düşürüyordur, sunucu kapalıdır veya adres yanlıştır.
SSH'nin neden başarısız olduğunu nasıl görürüm?
ssh -vvv ile bağlanın ve hatadan önceki son satırları okuyun. Sunucuda SSH servisinin kaydı bir girişin neden reddedildiğini gösterir: Ubuntu ve Debian'da journalctl -u ssh.
SSH portunu değiştirdim ve artık bağlanamıyorum. Ne yapmalıyım?
Yeni portla ssh -p kullanarak bağlanın ve güvenlik duvarının buna izin verdiğinden emin olun. Ubuntu'da port değişikliği ayrıca systemctl daemon-reload ve ssh.socket yeniden başlatması gerektirir. Erişiminiz kesildiyse hizmet sayfanızda görünüyorsa web konsolunu kullanın.
IP adresim engellenmiş olabilir mi?
Evet; sunucuda Fail2ban veya CrowdSec çalışıyorsa ve birkaç kez hatalı giriş yaptıysanız. Başka bir ağdan bağlanın ya da erişimi olan birinden adresinizin engelini kaldırmasını isteyin.
Ne zaman destek bildirimi açmalıyım?
Denediğiniz her ağdan port kapalıysa ve web konsolu da çalışmıyorsa ya da sunucu hiçbir şeye yanıt vermiyorsa. ssh -vvv çıktısını ve sunucuya yönelik bir mtr veya pathping çıktısını ekleyin.