# SSH "Permission denied (publickey)" ve "Too many authentication failures"

https://kervanhosting.com/bilgi-bankasi/makale/ssh-permission-denied-publickey-ve-too-many-authentication-failures

SSH anahtarınızı sunucuya ekledikten sonra şu hatalardan birini alıyorsunuz:

```
kullanici@203.0.113.10: Permission denied (publickey).
Received disconnect from 203.0.113.10 port 22: Too many authentication failures
```

İkisi de sunucunun anahtarınızı kabul etmediği anlamına gelir ama sebepleri farklıdır. Önce tahmin yürütmeyi bırakıp SSH'a ne yaptığını sorun.

## Ayrıntılı çıktıyı alın

```
ssh -vvv -i ~/.ssh/id_ed25519 kullanici@203.0.113.10
```

Çıktıda `Offering public key` satırları sizin hangi anahtarları denediğinizi, `Authentications that can continue` sunucunun hangi yöntemleri kabul ettiğini gösterir. `publickey` listede yoksa sunucuda anahtarla giriş kapalıdır. Anahtar teklif edilip reddedildiyse aşağıdaki nedenlere bakın.

## Permission denied (publickey) nedenleri

1. **Yanlış kullanıcı adı.** Anahtarı `ali` kullanıcısına eklediyseniz `root@` ile bağlanmayın. Doğru kullanıcıyı yazın.
2. **Genel anahtar sunucuda yok ya da bozuk.** Sunucuda (VNC Konsol'dan) o kullanıcının `~/.ssh/authorized_keys` dosyasında, kendi `.pub` dosyanızın içeriğinin **tek satır** olarak durduğundan emin olun. Satır ortasından bölünmüş ya da sonuna fazladan metin eklenmiş anahtar çalışmaz.
3. **İzinler yanlış.** SSH, çok açık izinli dosyaları güvenlik nedeniyle reddeder: `chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys chmod go-w ~` Ev dizininin sahibi kullanıcı olmalı (`chown -R kullanici:kullanici ~/.ssh`) ve herkesin yazabildiği bir dizin olmamalıdır.
4. **Yanlış anahtar dosyası.** `-i` ile gösterdiğiniz özel anahtar, sunucuya eklediğiniz genel anahtarın eşi olmalı. Karşılaştırmak için `ssh-keygen -lf anahtar.pub` ile iki yerdeki parmak izine bakın.
5. **Eski anahtar türü.** Yeni OpenSSH sürümleri SHA1 imzalı `ssh-rsa` anahtarlarını varsayılan olarak kabul etmez. Yeni bir ED25519 anahtarı üretin (`ssh-keygen -t ed25519`) ve onu ekleyin: [SSH anahtarı](https://kervanhosting.com/bilgi-bankasi/makale/ssh-anahtari-nedir-parola-yerine-nasil-kullanirim).
6. **Sunucuda kök girişi ya da anahtar girişi kapalı.** `sudo sshd -T | grep -i -E "permitrootlogin|pubkeyauthentication"` çıktısına bakın. Sunucularımızın şablonunda root girişini açan dosya `/etc/ssh/sshd_config.d/00-wisecp-root.conf`'dir.

Sunucu tarafının neden reddettiğini en açık şekilde günlük söyler: `sudo journalctl -u ssh -n 30` (Debian'da `sudo tail -n 30 /var/log/auth.log`). *Authentication refused: bad ownership or modes for directory* satırı izinleri işaret eder.

## Too many authentication failures

SSH, bilgisayarınızdaki ssh-agent'ta bulunan tüm anahtarları sırayla dener. Sunucu varsayılan olarak yalnızca birkaç denemeye izin verir (genelde 6); çok anahtarınız varsa doğru anahtara sıra gelmeden bağlantı kesilir. Çözüm: yalnızca belirttiğiniz anahtarı denetmek.

```
ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 kullanici@203.0.113.10
```

Kalıcı yapmak için `~/.ssh/config` dosyasına ekleyin:

```
Host sunucum
    HostName 203.0.113.10
    User kullanici
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes
```

Artık sadece `ssh sunucum` yazarsınız.

## Windows'ta ek not

"UNPROTECTED PRIVATE KEY FILE" hatası alırsanız özel anahtar dosyasının izinleri geniştir. Dosyaya sağ tıklayın > Özellikler > Güvenlik bölümünden yalnızca kendi kullanıcınıza okuma izni bırakın. Anahtar hiç çalışmazsa parolayla girip anahtarı yeniden ekleyebilir ya da VNC Konsol'dan düzeltebilirsiniz: [konsol makalesi](https://kervanhosting.com/bilgi-bankasi/makale/konsol-vnc-nedir-baglanamadigimda-sunucuya-nasil-girerim).

## Sık sorulanlar

### Anahtarla girişi çalıştırana kadar parola girişini kapatmayın.

Önce anahtarla girişi başka bir pencerede doğrulayın, sonra parola girişini kapatın. Aksi halde kendinizi dışarıda bırakırsınız ve konsolla düzeltmeniz gerekir.

### Aynı anahtarla başka sunucuya giriyorum, bu sunucuya girmiyorum.

Genelde bu sunucuda anahtar eklenmemiştir ya da kullanıcı adı farklıdır. Şablonlarımızda root'a parolayla girebilirsiniz; girdikten sonra anahtarı ekleyin.

### Parolalı anahtar kullanırsam her seferinde parola ister mi?

Evet; ssh-agent'a bir kez ekleyerek (`ssh-add`) oturum boyunca tekrar yazmaktan kurtulursunuz.

**İlgili makaleler**

- [SSH anahtarı nedir? Parola yerine nasıl kullanırım?](https://kervanhosting.com/bilgi-bankasi/makale/ssh-anahtari-nedir-parola-yerine-nasil-kullanirim)
- [SSH hataları: "Permission denied" ve "Connection refused"](https://kervanhosting.com/bilgi-bankasi/makale/ssh-hatalari-permission-denied-ve-connection-refused)
- [Linux sunucuda sudo yetkili kullanıcı açma ve root girişini kapatma](https://kervanhosting.com/bilgi-bankasi/makale/linux-sunucuda-sudo-yetkili-kullanici-ac-ve-root-girisini-kapat)

*Sorununuz çözülmediyse [destek talebi açın](https://kervanhosting.com/destek-taleplerim). Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.*
