Birdies Nest'e Hoş Geldiniz
Parçacıklara dön

GitHub SSH anahtarı oluştur

Bir Ed25519 SSH anahtarı oluştur ve GitHub hesabına bağla.

SSH anahtarları, her seferinde parola girmeden SSH üzerinden push ve pull yapmanı sağlar. Aşağıda github adında bir anahtar oluşturup hesabına bağlayacaksın — ya da en sondaki hazır betiği kullan.

Tarayıcında kalır — yalnızca aşağıdaki komutları olduğu gibi kopyalayabilmen için doldurur.

SSH'i kur (eksikse)

  1. 1

    Önce SSH'in kurulu olup olmadığını kontrol et — ssh -V OpenSSH sürümünü yazdırır. Bir sürüm görürsen sonraki bölüme geç; yalnızca “command not found” görürsen buradan devam et.

    ssh -V
  2. 2

    Debian/Ubuntu: paket listesini güncelle ve OpenSSH istemcisini kur.

    sudo apt update && sudo apt install -y openssh-client
  3. 3

    Fedora/RHEL bunun yerine dnf kullanır. (macOS ve Windows 10+ SSH ile birlikte gelir, bunu atlayabilirsin.)

    sudo dnf install -y openssh-clients

Anahtarı oluştur ve bağla

  1. 1

    SSH klasöründe başla. ~ (tilde) ev dizininin kısaltmasıdır; yani ~/.ssh aslında /home/<kullanıcı-adın>/.ssh demektir — SSH'in anahtarları sakladığı yer. mkdir -p, klasör yoksa önce onu oluşturur.

    mkdir -p ~/.ssh && cd ~/.ssh
  2. 2

    Var olan bir anahtarı ezmemek için klasörü listele. github ve github.pub (ya da id_ed25519) görünüyorsa bu adda bir anahtar zaten var demektir.

    ls -al ~/.ssh
  3. 3

    Bir Ed25519 anahtarı oluştur. -C onu GitHub e-postanla etiketler, -f github ise dosyaları varsayılan id_ed25519 yerine doğrudan ~/.ssh içinde github (özel) ve github.pub (genel) olarak adlandırır. Soruları tercih edersen: ssh-keygen -t ed25519 çalıştır ve “Enter file in which to save the key” diye sorduğunda github yaz. Bir parola belirle ya da geçmek için Enter'a bas.

    ssh-keygen -t ed25519 -C "your_email@example.com" -f github
  4. 4

    SSH'e bu anahtarı GitHub için kullanmasını söyle. ~/.ssh/config dosyasına bir Host bloğu ekle ki github.com, IdentityFile aracılığıyla yeni anahtarına eşlensin — böylece ssh ve git onu otomatik kullanır, ssh-agent başlatmaya gerek kalmaz. Aşağıdaki blok, yoksa ~/.ssh/config dosyasını oluşturur ve IdentitiesOnly yes, SSH'in yalnızca bu anahtarı sunmasını sağlar.

    cat >> ~/.ssh/config <<'EOF'
    
    Host github.com
      HostName github.com
      User git
      IdentityFile ~/.ssh/github
      IdentitiesOnly yes
    EOF
  5. 5

    Genel anahtarı yazdır, sonra ssh-ed25519 ile başlayan satırın tamamını kopyala — fazladan boşluk veya satır sonu olmadan. (macOS: pbcopy < ~/.ssh/github.pub. Linux: xclip -sel clip < ~/.ssh/github.pub.)

    cat ~/.ssh/github.pub
  6. 6

    GitHub'da Hesabın → Settings → SSH and GPG keys → New SSH key'i aç. Bir başlık ver (örn. bilgisayarının adı), anahtarı “Key” kutusuna yapıştır ve Add SSH key'e tıkla.

  7. 7

    Bağlantıyı test et — “Hi <kullanıcı-adın>! You've successfully authenticated…” mesajını görmelisin. İlk seferinde GitHub'ın ana makinesine güvenmek için yes yaz.

    ssh -T git@github.com
  8. 8

    Tek seferde mi istiyorsun? Aşağıdaki bloğu github-key-generation.sh olarak kaydet, e-postayı değiştir ve bash github-key-generation.sh çalıştır. 1–5 arası adımları yapar ve 6. adımda yapıştıracağın genel anahtarı yazdırır.

    #!/usr/bin/env bash
    # github-key-generation.sh — create an Ed25519 key named "github" and point GitHub at it.
    set -euo pipefail
    
    EMAIL="your_email@example.com"   # change to your GitHub email
    KEY="$HOME/.ssh/github"
    
    mkdir -p "$HOME/.ssh"
    ssh-keygen -t ed25519 -C "$EMAIL" -f "$KEY"
    
    # Point github.com at the new key (only if it is not already configured).
    if ! grep -q "^Host github.com$" "$HOME/.ssh/config" 2>/dev/null; then
      cat >> "$HOME/.ssh/config" <<EOF
    
    Host github.com
      HostName github.com
      User git
      IdentityFile $KEY
      IdentitiesOnly yes
    EOF
    fi
    
    echo
    echo "Public key — paste this into GitHub → Settings → SSH and GPG keys → New SSH key:"
    cat "$KEY.pub"