Git Push Permission Denied Hatası Nasıl Çözülür?

sametgness · 28 Eylül 2026 · 1 görüntülenme · 0 cevap

git push komutunu çalıştırırken Permission Denied hatası alıyorsanız GitHub, göndermeye çalıştığınız repository için hesabınızı doğrulayamıyor veya hesabınızın yazma yetkisi bulunmuyor olabilir.


Sorunu çözmeden önce repository'nin HTTPS mi yoksa SSH üzerinden mi kullanıldığını belirlemek gerekir.

1. Repository bağlantısını kontrol edin

Terminalde:

git remote -v

komutunu çalıştırın.

Adres şu şekildeyse HTTPS kullanıyorsunuz:

https://github.com/kullanici/proje.git

Şuna benziyorsa SSH kullanıyorsunuz:

git@github.com:kullanici/proje.git

Çözüm yöntemi kullandığınız bağlantı türüne göre değişebilir.

2. Repository size ait mi kontrol edin

GitHub'daki repository'nin hangi hesaba veya organizasyona ait olduğunu kontrol edin.

Başka bir kullanıcıya ait repository'ye değişiklik göndermeye çalışıyorsanız hesabınızın gerekli yazma yetkisine sahip olması gerekir.

Sadece repository'yi görüntüleyebilmeniz push yetkinizin olduğu anlamına gelmez.

3. Yanlış GitHub hesabıyla giriş yapılmış olabilir

Bilgisayarınızda birden fazla GitHub hesabı kullanıyorsanız kayıtlı kimlik bilgileri farklı bir hesaba ait olabilir.

Örneğin repository birinci hesabınıza aitken Git ikinci hesabınızın kimlik bilgilerini kullanıyorsa push işlemi reddedilebilir.

Bu durumda hangi hesabın kullanıldığını ve repository erişim yetkilerini kontrol edin.

4. HTTPS kullanıyorsanız hesap şifresini kullanmayın

GitHub, Git işlemlerinde normal hesap şifresiyle yapılan eski kimlik doğrulama yöntemini desteklemez.

HTTPS bağlantısında uygun GitHub kimlik doğrulama yöntemi kullanılmalıdır.

Kullandığınız Git istemcisine göre Git Credential Manager, kişisel erişim belirteci veya desteklenen başka bir GitHub kimlik doğrulama yöntemi kullanılabilir.

Erişim belirteçlerini şifre gibi koruyun ve hiçbir zaman proje dosyalarına veya public repository'ye eklemeyin.

5. Remote adresi yanlış olabilir

Mevcut adresi kontrol edin:

git remote -v

Yanlış repository tanımlanmışsa uygun adresle değiştirebilirsiniz:

git remote set-url origin YENI_REPOSITORY_ADRESI

Ardından:

git remote -v

ile değişikliği tekrar kontrol edin.

6. SSH kullanıyorsanız anahtarınızı kontrol edin

SSH bağlantısında GitHub hesabınıza tanımlanmış uygun bir SSH anahtarı bulunmalıdır.

Bağlantıyı test etmek için:

ssh -T git@github.com

komutu kullanılabilir.

Kimlik doğrulama başarısız oluyorsa SSH anahtarınızın:

- Bilgisayarda mevcut olması
- Doğru GitHub hesabına eklenmesi
- SSH tarafından kullanılabilmesi

kontrol edilmelidir.

7. Permission denied publickey hatası farklıdır

Hata mesajınız:

Permission denied (publickey)

şeklindeyse sorun büyük olasılıkla SSH kimlik doğrulamasıyla ilgilidir.

Bu durumda repository yazma yetkisinden önce SSH anahtarının doğru oluşturulduğunu, GitHub hesabına eklendiğini ve bağlantıda kullanıldığını kontrol etmek gerekir.

8. Repository organizasyona aitse ek izinler gerekebilir

Repository bir GitHub organizasyonuna aitse hesabınızın repository üzerinde uygun yetkiye sahip olması gerekir.

Organizasyonun güvenlik politikalarına bağlı olarak ek kimlik doğrulama veya erişim gereksinimleri de bulunabilir.

Bu durumda organizasyon yöneticisinin verdiği yetkileri kontrol edin.

9. Branch koruması nedeniyle push reddedilebilir

Repository'ye erişiminiz olduğu halde yalnızca belirli bir branch'e push yapamıyorsanız branch kuralları uygulanıyor olabilir.

Örneğin doğrudan main branch'ine gönderim sınırlandırılmış olabilir.

Bu durumda yeni bir branch oluşturup değişiklikleri oraya göndererek pull request sürecini kullanmanız gerekebilir.

Bu durum klasik Permission Denied hatasından farklı olsa da push işleminin yetki nedeniyle engellendiği senaryolardan biridir.

10. Git kullanıcı adı ile GitHub giriş hesabını karıştırmayın

Şu komutlar:

git config --global user.name

git config --global user.email

commit'lerin hangi isim ve e-posta bilgisiyle oluşturulacağını belirler.

Bunları değiştirmek tek başına GitHub kimlik doğrulama problemini çözmez.

Git kimliği ile GitHub'a bağlanırken kullanılan kimlik doğrulama bilgileri farklı kavramlardır.

11. Repository taşındıysa veya yeniden adlandırıldıysa

Repository başka hesaba taşındıysa veya adresi değiştiyse eski remote bağlantısı problem oluşturabilir.

Yeni repository adresini GitHub üzerinden kontrol ettikten sonra:

git remote set-url origin YENI_ADRES

komutuyla güncelleyebilirsiniz.

12. Force push çözüm değildir

Permission Denied hatası aldığınızda:

git push --force

kullanmak erişim problemini çözmez.

Force push farklı bir işlemdir ve özellikle ortak kullanılan repository'lerde commit geçmişine zarar verebilir.

Yetki problemini doğru kimlik doğrulama ve repository izinlerini düzelterek çözün.

Hızlı kontrol sırası

Permission Denied hatasında şu sırayla ilerleyebilirsiniz:

1. git remote -v ile bağlantıyı kontrol edin.
2. HTTPS mi SSH mı kullandığınızı belirleyin.
3. Repository'nin doğru hesap veya organizasyona ait olduğunu kontrol edin.
4. GitHub hesabınızın yazma yetkisini doğrulayın.
5. HTTPS kullanıyorsanız kimlik doğrulama bilgilerini kontrol edin.
6. SSH kullanıyorsanız SSH anahtarını test edin.
7. Branch üzerinde ek kısıtlama olup olmadığını kontrol edin.
8. Ardından tekrar git push deneyin.

Git hatalarında mesajın tamamı önemlidir. Forumda yardım isterken çalıştırdığınız git push komutunu, git remote -v çıktısındaki repository adresini kişisel bilgileri gizleyerek ve aldığınız hata mesajının tamamını paylaşmanız sorunun daha hızlı teşhis edilmesini sağlar.