Kod push’lamak için her seferinde şifre girmekten sıkıldınız mı? Güvenli, hızlı ve otomatik bir bağlantı yöntemi arıyorsanız, GitHub ile SSH bağlantısı tam size göre. Bu yazıda, daha önce paylaştığımız MacOS SSH Anahtarı Oluşturma Rehberi temel alınarak GitHub ile SSH üzerinden nasıl bağlantı kurabileceğinizi adım adım göstereceğiz.
SSH Anahtarı Hazır mı?
GitHub ile SSH bağlantısı için öncelikle bir SSH anahtar çiftiniz olmalı. Eğer henüz oluşturmadıysanız, bu rehberimizi inceleyerek MacOS üzerinde nasıl SSH anahtarı oluşturabileceğinizi adım adım öğrenebilirsiniz.
Anahtarınız hazırsa, GitHub ile SSH bağlantısı kurma adımlarına geçebiliriz. Bu anahtar sayesinde Git işlemlerinde parola girme zorunluluğumuz ortadan kalkar.
GitHub’da SSH Ayarlarına Erişim
- GitHub hesabınıza giriş yapın.
- Sağ üstteki profil resmine tıklayıp “Settings” menüsüne girin.
- Sol menüde “SSH and GPG keys” sekmesini seçin.
- “New SSH key” butonuna tıklayın.
Public Anahtarı GitHub’a Eklemek
Terminal’den public key’i panoya kopyalayın:
pbcopy < ~/.ssh/id_rsa_github.pub
GitHub’daki “Key” alanına yapıştırın. Bir isim verin (örneğin: “MacBook Pro – Temmuz 2025”) ve “Add SSH Key” butonuna tıklayın.
Alternatif:
Eğer pbcopy komutu çalışmıyorsa, public key’i cat ~/.ssh/id_rsa_github.pub komutuyla ekrana yazdırıp elle kopyalayabilirsiniz.
Anahtarı SSH Agent’e Eklemek
GitHub ile SSH bağlantısının sorunsuz çalışması için, public anahtarı ekledikten sonra özel (private) anahtarınızın sisteminizde etkin olması gerekir. Bu da ancak anahtarı SSH agent’e yükleyerek sağlanabilir.
SSH Agent Nedir?
SSH agent, özel anahtarlarınızı bellekte tutan bir yardımcı programdır. Bu sayede GitHub’a bağlanırken her defasında şifre girmenize gerek kalmaz. Anahtarlar yüklü olduğu sürece, bağlantılar otomatik olarak gerçekleşir.
1. SSH Agent’in Çalıştığından Emin Olun
Öncelikle SSH agent’in aktif olduğundan emin olun. Terminal’e şu komutu girin:
eval "$(ssh-agent -s)"
Eğer her şey yolundaysa şöyle bir çıktı alırsınız:
Agent pid 12345
Bu, SSH agent’in aktif olduğunu gösterir.
2. Anahtarı Agent’e Ekleyin
Şimdi, GitHub için oluşturduğunuz özel anahtarı SSH agent’e ekleyin:
ssh-add ~/.ssh/id_rsa_github
Eğer özel anahtarınızı oluştururken bir şifre belirlediyseniz, bu aşamada sizden o şifreyi girmeniz istenecektir.
3. Anahtarın Yüklendiğini Kontrol Edin
Anahtarın gerçekten yüklendiğinden emin olmak için şu komutu kullanabilirsiniz:
ssh-add -l
Eğer başarılıysa şöyle bir satır görürsünüz:
4096 SHA256:... /Users/kullaniciadi/.ssh/id_rsa_github (RSA)
Bu, anahtarın SSH agent’e başarıyla yüklendiğini gösterir.
Terminal Açıldığında Otomatik Yüklenmesini Sağlamak
Her terminal oturumunda ssh-add komutunu manuel çalıştırmak yerine bu işlemi otomatik hale getirebilirsiniz. Bu düzenleme ile GitHub ile SSH bağlantısı oturum açtığınız her terminalde aktif olacak, siz ekstra bir işlem yapmadan hazır hale gelecektir. Bunun için kullandığınız shell’e göre aşağıdaki dosyalardan birine ilgili satırları eklemeniz yeterlidir:
Zsh kullanıyorsanız:
nano ~/.zshrc
Bash kullanıyorsanız:
nano ~/.bash_profile
Açılan dosyanın en altına şu satırları ekleyin:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa_github
Kaydetmek için: Control + O, ardından Enter
Çıkmak için: Control + X‘e tıklayın
Birden fazla terminal veya farklı shell kullanıyorsanız, her biri için yukarıdaki adımları tekrarlamanız gerekir.
SSH Bağlantısını Test Etmek
ssh -T git@github.com
Başarılı bir bağlantı kurulursa şöyle bir mesaj alırsınız:
Hi kullaniciadi! You've successfully authenticated, but GitHub does not provide shell access.
SSH Config ile Anahtar Yönetimi
Birden fazla SSH anahtarı kullanıyorsanız (örneğin GitHub ile SSH bağlantısı, özel sunucular veya DigitalOcean gibi hizmetler için farklı anahtarlar), .ssh/config dosyası sayesinde tüm bu bağlantıları düzenli ve sorunsuz şekilde yönetebilirsiniz.
Bu yapılandırma, her bağlantının hangi SSH anahtarıyla yapılacağını açıkça tanımlamanıza olanak tanır ve olası karışıklıkları önler.
SSH Config Dosyasını nano ile Açın veya Oluşturun
nano ~/.ssh/config
Eğer dosya daha önce oluşturulmadıysa bu komut yeni bir tane yaratacaktır.
Aşağıdaki Yapılandırmayı Ekleyin
# GitHub bağlantısı için özel tanım
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github
IdentitiesOnly yes
Bu yapılandırmanın anlamı:
- Host github.com: Git işlemlerinde bu takma ad (alias) kullanılacak.
- HostName github.com: Gerçek uzak sunucu adresi.
- User git: GitHub bağlantıları bu kullanıcı adıyla yapılmalı.
- IdentityFile: Hangi SSH anahtarı kullanılacağı.
- IdentitiesOnly yes: Sadece belirtilen anahtarı kullan, sistemde yüklü başka anahtarları deneme.
Dosyayı Kaydedip Çıkın
Control+O→ KaydetEnter→ OnaylaControl+X→ Çıkış
Yapılandırmayı Test Edin
Şimdi GitHub bağlantınızı test etmek için şu komutu girin:
ssh -T git@github.com
Doğru yapılandırılmışsa şöyle bir yanıt alırsınız:
Hi kullaniciadi! You've successfully authenticated, but GitHub does not provide shell access.
Bu sayede hem birden fazla SSH anahtarını karışıklık olmadan kullanabilir, hem de GitHub için özel bir konfigürasyon tanımlayarak bağlantı problemlerini en aza indirebilirsiniz.
Sıkça Sorulan Sorular
GitHub için kaç adet SSH anahtarı oluşturabilirim?
GitHub hesabınızda birden fazla SSH anahtarı tanımlayabilirsiniz. Örneğin farklı bilgisayarlar, sunucular veya iş/kişisel projeler için ayrı anahtarlar eklemek mümkündür.
Permission denied (publickey) hatası alıyorum. Ne yapmalıyım?
Bu hata genellikle şu nedenlerle oluşur:
- SSH agent’e doğru anahtar yüklenmemiştir →
ssh-add ~/.ssh/id_rsa_github - Anahtar GitHub hesabına eklenmemiştir.
~/.ssh/configdosyasında yanlış anahtar tanımlanmıştır.ssh -T git@github.comile test etmeyi unutmayın.
Her terminal açıldığında anahtarı yeniden mi yüklemem gerekiyor?
Eğer .zshrc ya da .bash_profile dosyanıza ssh-add komutunu eklemediyseniz evet. Ancak bu komutu oraya ekleyerek işlemi otomatik hale getirebilirsiniz.
Hem GitHub hem kendi sunucularım için farklı SSH anahtarları kullanabilir miyim?
Evet. Her biri için farklı bir anahtar oluşturabilir ve ~/.ssh/config dosyasıyla bu anahtarların hangi sunucuda kullanılacağını net şekilde belirleyebilirsiniz.
GitHub SSH bağlantısı ile HTTPS bağlantısı arasında ne fark var?
- HTTPS: Her push/pull işleminde kullanıcı adı ve parola (ya da token) gerekir.
- SSH: Şifre gerekmez, daha güvenlidir. Otomatik işlemler için idealdir.
Git bağlantımı HTTPS yerine SSH yapmak istiyorum. Nasıl değiştirebilirim?
Projenizin bulunduğu klasörde şu komutu çalıştırın:
git remote set-url origin git@github.com:kullaniciadi/projeadi.git
Sonrasında bağlantınızı şu şekilde test edebilirsiniz:
git remote -v
Sonuç
Artık GitHub ile SSH bağlantısı kurmak için gerekli tüm adımları tamamladınız. Bu yapılandırma sayesinde:
- Her push/pull işleminde şifre girmek zorunda kalmazsınız.
- Daha güvenli, hızlı ve temiz bir Git deneyimi yaşarsınız.
- Birden fazla SSH anahtarınız varsa
configdosyasıyla hepsini sorunsuz yönetebilirsiniz.
Eğer bu işlemler sırasında hata alırsanız, daha önce hazırladığımız rehberleri gözden geçirebilir ya da bizimle iletişime geçebilirsiniz. 👉 https://wolinka.com.tr/iletisim/