Her gün sunucuna parola ile giriş yapmak hem zahmetli hem de güvenlik riski taşır. SSH anahtar (key) kimlik doğrulaması, parola yerine kriptografik anahtar çiftleri kullanarak hem güvenliği maksimuma çıkarır hem de tek tuşla giriş yapmanı sağlar. Bu rehberde sıfırdan SSH key oluşturma ve sunucuya kurma işlemini göstereceğiz.
SSH Key Nasıl Çalışır?
SSH key sistemi iki parçadan oluşur:
- Private Key (Özel Anahtar): Sadece sende kalır, kimseyle paylaşılmaz
- Public Key (Genel Anahtar): Sunucuya yüklenir
Bağlantı kurulurken sunucu senden özel anahtarla bir imza ister. Eşleşirse giriş yapılır, parola sorulmaz.
Adım 1: SSH Key Oluşturma
Windows (PowerShell veya Git Bash):
# Ed25519 algoritması ile key oluştur (önerilen)
ssh-keygen -t ed25519 -C "benim-sunucum"
# RSA tercih edersen (eski uyumluluk)
ssh-keygen -t rsa -b 4096 -C "benim-sunucum"
Sana dosya konumu ve passphrase soracaktır:
Enter file in which to save the key (/home/user/.ssh/id_ed25519): [Enter]
Enter passphrase (empty for no passphrase): [şifre gir veya boş bırak]
Linux / macOS:
ssh-keygen -t ed25519 -C "email@orneksite.com"
# Key'lerin konumu:
# Özel anahtar: ~/.ssh/id_ed25519
# Genel anahtar: ~/.ssh/id_ed25519.pub
Adım 2: Public Key'i Sunucuya Yükleme
Yöntem 1: ssh-copy-id (En kolay)
ssh-copy-id -i ~/.ssh/id_ed25519.pub kullanici@sunucu-ip
Yöntem 2: Manuel Yükleme
# Yerel makinende public key'i kopyala
cat ~/.ssh/id_ed25519.pub
# Sunucuya bağlan
ssh kullanici@sunucu-ip
# Sunucuda dizin ve dosya oluştur
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
# Public key'i yapıştır ve kaydet
chmod 600 ~/.ssh/authorized_keys
Yöntem 3: Tek komutla
cat ~/.ssh/id_ed25519.pub | ssh kullanici@sunucu-ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Adım 3: Bağlantı Testi
# Parola sorulmadan bağlanmalısın
ssh kullanici@sunucu-ip
# Verbose modda detay gör
ssh -v kullanici@sunucu-ip
💡 SSH Key ile Güvenli Sunucu Yönetimi
SSH key authentication profesyonel sunucu yönetiminin olmazsa olmazıdır. HazalHost VDS sunucularda KVM konsol erişimi ile SSH sorunlarında bile sunucuna ulaşabilirsin.
Adım 4: Parola Girişini Kapat
SSH key çalıştığından emin olduktan sonra parola girişini kapatarak güvenliği maximuma çıkar:
sudo nano /etc/ssh/sshd_config
# Bu satırları bul ve düzenle:
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
# Servisi yeniden başlat
sudo systemctl restart sshd
SSH Agent Kullanımı
# SSH agent başlat
eval "$(ssh-agent -s)"
# Key'i agent'a ekle
ssh-add ~/.ssh/id_ed25519
# Artık passphrase'i tekrar sormaz
SSH Config ile Kısayol
nano ~/.ssh/config
Host sunucum
HostName 185.123.45.67
User yonetici
Port 2222
IdentityFile ~/.ssh/id_ed25519
Host yedek-sunucu
HostName 185.123.45.68
User admin
IdentityFile ~/.ssh/id_rsa
# Artık sadece şunu yaz:
ssh sunucum
🚀 Profesyonel Sunucu Yönetimi
SSH key, Fail2Ban, UFW... Tüm güvenlik katmanlarını doğru yapılandırmak için güçlü bir altyapı şart. HazalHost DDoS korumalı VDS sunucularıyla başla.
Sonuç
SSH key authentication, parola girişine göre çok daha güvenlidir. Ed25519 algoritmasıyla key oluştur, sunucuya yükle, test et ve parola girişini kapat. SSH config dosyasıyla birden fazla sunucuyu kolayca yönetebilirsin.
Sık Sorulan Sorular (FAQ)
Ed25519 mi RSA mı kullanmalıyım?
Ed25519 daha kısa, daha hızlı ve daha güvenlidir. Çok eski sistemlerle uyumluluk gerekmiyorsa Ed25519 tercih et.
Private key'imi kaybedersem ne olur?
Parola girişi kapalıysa sunucuya SSH ile bağlanamazsın. Bu durumda VNC/KVM konsol üzerinden bağlanarak yeni bir key eklemelisin.
Aynı key'i birden fazla sunucuda kullanabilir miyim?
Evet, aynı public key'i istediğin kadar sunucuya ekleyebilirsin. Ancak güvenlik açısından her sunucu için ayrı key kullanmak best practice'dir.