Git 'Permission Denied (publickey)' Hatası Nedir?
Bu hata, Git'in size SSH anahtarınızı doğrularken bir problem yaşadığını gösterir. Git, genellikle *SSH anahtarları* kullanarak uzak sunucularda (örneğin GitHub, GitLab veya Bitbucket) bağlantı kurar. Eğer SSH anahtarınız doğru şekilde ayarlanmamışsa veya Git bu anahtarı tanıyamıyorsa, 'Permission Denied (publickey)' hatasını alırsınız.
Ama merak etmeyin! Sorunun kaynağını bulmak ve çözümünü uygulamak birkaç dakika sürecek.
1. SSH Anahtarınızı Kontrol Edin
İlk adım, bilgisayarınızda bir SSH anahtarınızın olup olmadığını kontrol etmektir. Eğer anahtarınız yoksa, yeni bir tane oluşturmanız gerekecek.
SSH anahtarınızı kontrol etmek için terminali açın ve şu komutu girin:
ls -al ~/.ssh
Bu komut, bilgisayarınızda `.ssh` klasöründe bulunan dosyaları listeleyecektir. Eğer bu klasörde `id_rsa` (özel anahtar) ve `id_rsa.pub` (genel anahtar) dosyalarını görüyorsanız, anahtarlarınız zaten mevcut demektir. Eğer bu dosyaları görmüyorsanız, bir SSH anahtarı oluşturmanız gerekecek.
2. SSH Anahtarı Oluşturun
Eğer bilgisayarınızda SSH anahtarınız yoksa, yeni bir anahtar oluşturmanız gerekecek. Terminalde aşağıdaki komutu girin:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Burada `your_email@example.com` kısmını GitHub hesabınızla ilişkilendirdiğiniz e-posta adresi ile değiştirin. Bu komut, sizi anahtar dosyasının kaydedileceği bir yer seçmeye yönlendirecektir. Varsayılan yolu kabul etmek için *Enter* tuşuna basabilirsiniz.
3. SSH Anahtarınızı GitHub'a Ekleyin
Anahtarınızı başarıyla oluşturduktan sonra, genel anahtarınızı GitHub hesabınıza eklemeniz gerekecek. İlk olarak, genel anahtarınızı panoya kopyalamak için şu komutu kullanın:
cat ~/.ssh/id_rsa.pub
Bu komut, `id_rsa.pub` dosyanızdaki anahtarı terminale yazdıracaktır. Bu anahtarı panoya kopyalayın.
Şimdi GitHub'a gidin ve sağ üst köşedeki profil resminize tıklayın. Ardından Settings (Ayarlar) kısmına girin, sol menüden SSH and GPG keys sekmesine tıklayın ve New SSH key butonuna basın. Açılan pencerede başlık kısmına bir isim verin (örneğin, "My Laptop SSH Key") ve kopyaladığınız anahtarı Key kısmına yapıştırın. Son olarak Add SSH Key butonuna tıklayın.
4. SSH Bağlantısını Test Edin
Artık her şey hazır! GitHub ile olan bağlantınızı test etmek için aşağıdaki komutu terminale girin:
ssh -T git@github.com
Eğer her şey doğru şekilde yapılandırıldıysa, aşağıdaki gibi bir mesaj alacaksınız:
Hi your_username! You've successfully authenticated, but GitHub does not provide shell access.
Bu, SSH bağlantınızın başarıyla kurulduğu anlamına gelir.
5. Git İstemcisini SSH ile Kullanmak
Eğer GitHub'a bağlanmak için HTTPS yerine SSH kullanmak istiyorsanız, mevcut uzak (remote) bağlantınızı değiştirebilirsiniz. Projenizin kök dizininde şu komutu girerek uzak bağlantıyı SSH olarak değiştirebilirsiniz:
git remote set-url origin git@github.com:your_username/your_repository.git
Bu komutla GitHub bağlantınız HTTPS yerine SSH üzerinden yapılacaktır. Artık Git işlemlerinizi yaparken 'Permission Denied (publickey)' hatasını almayacaksınız!
Sonuç
Git üzerinden karşılaştığınız 'Permission Denied (publickey)' hatasını çözmek için SSH anahtarınızı doğru şekilde yapılandırmanız yeterlidir. Anahtarınızı oluşturduktan ve GitHub'a ekledikten sonra, Git işlemlerinizi sorunsuz bir şekilde gerçekleştirebilirsiniz. Unutmayın, SSH anahtarları güvenli bağlantılar kurmanıza yardımcı olur ve bu tür hataları engeller.
Umarım bu rehber, Git ile çalışırken karşılaştığınız sorunları çözmenize yardımcı olur!