Git 'Permission Denied (publickey)' Hatası Nedir?
Git ile çalışırken, özellikle uzak bir Git deposuna (örneğin, GitHub) erişim sağlamak için SSH anahtarlarını kullanırız. Bu anahtarlar, kullanıcıyı tanımlayan bir şifre gibi davranır ve doğru şekilde ayarlanmadığında bu hatayı alabilirsiniz.
Git, SSH anahtarlarını kullanarak uzak depoya bağlanır. Eğer doğru SSH anahtarınız yoksa veya yanlış bir şekilde yapılandırılmışsa, GitHub veya başka bir Git servisi, "Permission Denied (publickey)" hatasını gösterir. Yani, Git, sizin kim olduğunuzu doğrulayamıyor ve bu yüzden değişikliklerinizi göndermenize izin vermiyor.
Adım Adım Çözüm: Permission Denied (publickey) Hatasını Düzeltme
1. Adım: SSH Anahtarınızı Kontrol Edin
İlk olarak, bilgisayarınızda bir SSH anahtarınızın olup olmadığını kontrol etmelisiniz. SSH anahtarları, kullanıcıyı tanıyan bir çifttir; bir özel anahtar (private key) ve bir genel anahtar (public key). Eğer bu anahtarlar yoksa, GitHub veya diğer platformlar, sizi tanımlayamaz.
Terminal (ya da Git Bash) üzerinden şu komutu çalıştırarak var olan SSH anahtarlarını kontrol edebilirsiniz:
ls -al ~/.ssh
Bu komut, bilgisayarınızdaki .ssh dizininde bulunan anahtarları listeler. Eğer herhangi bir anahtar görmüyorsanız, yeni bir SSH anahtarı oluşturmanız gerekecek.
2. Adım: SSH Anahtarınızı Oluşturun
Eğer SSH anahtarınız yoksa, bir tane oluşturmanız gerekecek. Bunu yapmak için şu komutu kullanabilirsiniz:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Bu komut, size bir özel anahtar ve ona karşılık gelen bir genel anahtar oluşturacaktır. Anahtarınızı oluşturduktan sonra, anahtarınızın bulunduğu dizine gidin:
cd ~/.ssh
3. Adım: SSH Anahtarınızı GitHub'a Ekleyin
Anahtarlarınız artık hazır. Şimdi bu anahtarı GitHub hesabınıza eklemelisiniz. Öncelikle, genel anahtarınızı kopyalayın:
cat ~/.ssh/id_rsa.pub
Bu komut, genel SSH anahtarınızı terminalde görüntüler. Şimdi bu anahtarı kopyalayın. GitHub'a gidin, sağ üst köşedeki profil resminize tıklayın ve "Settings" (Ayarlar) bölümüne gidin. "SSH and GPG keys" sekmesine tıklayın ve "New SSH key" butonuna tıklayarak anahtarınızı buraya yapıştırın.
4. Adım: SSH Bağlantınızı Test Edin
Şimdi her şey hazır! Bağlantınızı test etmek için şu komutu kullanın:
ssh -T git@github.com
Eğer her şey doğru yapılandırılmışsa, şu mesajı almanız gerekir:
"Hi username! You've successfully authenticated, but GitHub does not provide shell access."
Bu, SSH bağlantınızın başarılı olduğunu ve artık GitHub'a erişiminizin olduğunu gösterir.
5. Adım: Git Bağlantı Ayarlarını Güncelleyin
Son olarak, Git’in hangi URL üzerinden bağlanacağını kontrol edin. Eğer HTTPS üzerinden bağlanıyorsanız, SSH’ye geçiş yapmanız gerekir. Bunu yapmak için şu komutu kullanabilirsiniz:
git remote set-url origin git@github.com:username/repository.git
Bu komut, HTTPS yerine SSH bağlantısını kullanmanızı sağlar. Artık, GitHub'da veya başka bir Git servisinde sorun yaşamadan push veya pull işlemlerini gerçekleştirebilirsiniz.
Sonuç: Hata Çözüldü!
Artık Git "Permission Denied (publickey)" hatasıyla karşılaşmıyorsunuz! SSH anahtarlarını doğru şekilde ayarlayarak, GitHub veya başka bir Git servisine sorunsuz bir şekilde bağlanabilirsiniz. Bu adımları takip ettiğinizde, Git ile olan ilişkiniz daha güvenli ve verimli hale gelecektir.
Unutmayın, her zaman SSH anahtarlarınızı güvende tutmaya özen gösterin ve bunları paylaşmaktan kaçının! Git ile sorunsuz bir deneyim için bu küçük ama önemli adımları izlediğinizde, karşınıza çıkan hataları kolayca çözebilirsiniz.