SSH Nedir? Windows, Mac ve Linux İçin SSH Key Oluşturma + GitHub Kurulumu
Bu kapsamlı rehberde SSH nedir, SSH key nasıl oluşturulur, Windows, Mac ve Linux üzerinde kurulum adımları, GitHub SSH key ekleme ve Permission denied (publickey) hata çözümlerini adım adım öğreneceksiniz.
SSH Nedir?
SSH (Secure Shell), uzak sunuculara güvenli bağlantı kurmak için kullanılan şifreli ağ protokolüdür.
Özellikle Linux sunucu yönetimi, DevOps, GitHub bağlantıları ve CI/CD süreçlerinde yaygın olarak kullanılır.
SSH Key Nedir?
SSH key sistemi iki parçadan oluşur:
- Private Key → Bilgisayarınızda kalır
- Public Key → Sunucuya veya GitHub’a eklenir
Böylece şifre girmeden güvenli kimlik doğrulama sağlanır.
Linux / Mac İçin SSH Key Oluşturma
ssh-keygen -t ed25519 -C "mail@example.com"
Daha eski sistemler için RSA:
ssh-keygen -t rsa -b 4096 -C "mail@example.com"
Dosyalar:
~/.ssh/id_ed25519~/.ssh/id_ed25519.pub
Windows İçin SSH Key Oluşturma
Windows PowerShell veya Git Bash üzerinden:
ssh-keygen -t ed25519 -C "mail@example.com"
Key dosyaları genellikle şu dizinde oluşur:
C:\Users\KullaniciAdi\.ssh\
Public Key’i Sunucuya Kopyalama
ssh-copy-id username@server-ip
Alternatif manuel yöntem:
cat ~/.ssh/id_ed25519.pub
Çıktıyı sunucudaki şu dosyaya yapıştırın:
~/.ssh/authorized_keys
GitHub SSH Key Ekleme
1. Public Key’i Görüntüle
cat ~/.ssh/id_ed25519.pub
2. GitHub’a Ekle
GitHub → Settings → SSH and GPG Keys → New SSH Key
Kopyalanan public key’i yapıştırın.
3. Test Et
ssh -T git@github.com
Başarılıysa şu mesaj gelir:
Hi username! You've successfully authenticated.
Copy-Paste Hazır Git Komutları
git remote set-url origin git@github.com:username/repo.git
git pull
git push
Permission Denied (publickey) Hatası Çözümü
Hata
Permission denied (publickey)
Çözüm 1 — Key Yüklü mü?
ssh-add ~/.ssh/id_ed25519
Çözüm 2 — Yetki Sorunu
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
Çözüm 3 — authorized_keys Yetkisi
chmod 600 ~/.ssh/authorized_keys
Çözüm 4 — SSH Config Kontrolü
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519
Şifreli Girişi Kapatma (Opsiyonel)
sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
sudo systemctl restart ssh
Sık Sorulan Sorular
SSH key daha güvenli mi?
Evet, parola tabanlı girişe göre çok daha güvenlidir.
GitHub için hangi key tipi?
Modern kullanım için ed25519 önerilir.
Mac’te SSH nerede?
~/.ssh/ klasöründe bulunur.