Hata Nedir?
'Permission Denied (publickey)' hatası, genellikle Git işlemleri sırasında karşılaşılan bir problem olup, bağlantı kurmaya çalıştığınız uzak Git deposuna SSH anahtarınızla kimlik doğrulaması yapamadığınızda ortaya çıkar. Git, bağlantı kurarken bir tür güvenlik kontrolü yapar ve eğer sağladığınız SSH anahtarı uygun değilse veya platformda kayıtlı değilse, bu hata mesajını alırsınız.
Hata ile Karşılaştığınızda İlk Yapmanız Gerekenler
Bu hatayı aldığınızda, ilk adım olarak, SSH anahtarlarınızın doğru şekilde ayarlandığını kontrol etmelisiniz. Git, her seferinde güvenliği sağlamak amacıyla SSH anahtarlarını kullanır. Eğer SSH anahtarınızı daha önce oluşturmadıysanız, Git erişimi sağlamakta zorlanır ve bu hata mesajını görürsünüz.
Adım Adım Çözüm Yolu
1. SSH Anahtarınızı Oluşturun
Eğer henüz bir SSH anahtarınız yoksa, aşağıdaki komut ile bir tane oluşturabilirsiniz:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Bu komut, bir RSA tipi anahtar oluşturur ve e-posta adresinizi anahtara ekler. Oluşturduğunuz anahtarı kaydedeceğiniz yolu seçmeniz istenecektir. Varsayılan olarak bu dosya, kullanıcı dizininizde `.ssh` klasöründe bulunacaktır.
2. SSH Anahtarınızı GitHub (veya GitLab) Hesabınıza Ekleyin
SSH anahtarınızı oluşturduktan sonra, bu anahtarı GitHub veya GitLab gibi platformlara eklemeniz gerekir. Bunun için, oluşturduğunuz anahtarın içeriğini şu komut ile kopyalayın:
cat ~/.ssh/id_rsa.pub
Daha sonra, GitHub veya GitLab hesabınıza gidin, ayarlar kısmından "SSH and GPG keys" bölümüne girin ve "New SSH key" butonuna tıklayın. Buraya kopyaladığınız anahtarı yapıştırarak ekleyin.
3. SSH Bağlantısını Test Edin
Anahtarınızın doğru şekilde eklendiğinden emin olduktan sonra, SSH bağlantınızı test etmek için şu komutu kullanabilirsiniz:
ssh -T git@github.com
Eğer her şey doğru şekilde yapılandırılmışsa, şu mesajı alırsınız:
"Hi username! You've successfully authenticated, but GitHub does not provide shell access."
4. Git'i Doğru URL ile Kullanın
GitHub'daki depoya erişirken HTTPS yerine SSH bağlantısını kullanmaya özen gösterin. SSH bağlantısı kullanmak için, depo URL'sini şu şekilde değiştirebilirsiniz:
git@github.com:username/repository.git
5. SSH Agent'ı Başlatın (Opsiyonel)
Eğer SSH anahtarınız hala doğru şekilde çalışmıyorsa, SSH agent'ı başlatmanız gerekebilir. Bunun için şu komutu kullanabilirsiniz:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
Sonuç
'Permission Denied (publickey)' hatası, genellikle SSH anahtarının doğru bir şekilde ayarlanmamış olmasından kaynaklanır. Ancak endişelenmenize gerek yok! Yukarıda verdiğim adımları takip ederek bu hatayı kolayca çözebilirsiniz. Unutmayın, Git ve SSH hakkında daha fazla bilgi edinmek, sizin daha verimli bir şekilde çalışmanıza yardımcı olacaktır.