SSH anahtarıyla giriş: anahtar oluşturmak, sunucuya eklemek ve şifreli girişi kapatmak

Editör 6 saat önce · 0 görüntülenme

İnternete açık bir Linux sunucuya şifreyle SSH girişi yapılıyorsa, otomatik botlar her gün binlerce şifre denemesi yapar. SSH anahtarıyla giriş hem daha güvenlidir hem de her seferinde şifre yazma zahmetini ortadan kaldırır.

Nasıl çalışır?

Bir anahtar çifti oluşturursun: özel anahtar (private key) yalnızca senin bilgisayarında kalır, açık anahtar (public key) sunucuya eklenir. Giriş sırasında sunucu, özel anahtarın sende olduğunu şifre gönderilmeden doğrular.

1. Anahtar oluşturmak

Windows 10/11 (PowerShell), macOS ve Linux'ta OpenSSH hazır gelir:

ssh-keygen -t ed25519 -C "dizustu-2026"
  • Kaydedilecek yeri sorduğunda varsayılanı kabul edebilirsin (~/.ssh/id_ed25519).
  • Parola (passphrase) belirle. Bilgisayarın çalınsa ya da dosya ele geçirilse bile anahtar parola olmadan kullanılamaz. Her seferinde yazmak istemiyorsan ssh-agent parolayı oturum boyunca hatırlar.
  • -C ile verdiğin açıklama, sunucuda hangi anahtarın hangi cihaza ait olduğunu anlamanı sağlar.

İki dosya oluşur: id_ed25519 (özel, asla paylaşma) ve id_ed25519.pub (açık).

2. Açık anahtarı sunucuya eklemek

Linux ve macOS'ta:

ssh-copy-id kullanici@sunucu-ip

Windows'ta ssh-copy-id yoksa PowerShell'de:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh kullanici@sunucu-ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Ardından yeni bir terminalde ssh kullanici@sunucu-ip ile şifre sorulmadan (yalnızca anahtar parolası sorularak) girebildiğini doğrula.

3. Şifreli girişi kapatmak

Bu adımdan önce anahtarla girişin çalıştığından kesinlikle emin ol ve mevcut SSH oturumunu kapatma. Aksi halde sunucunun dışında kalabilirsin.

/etc/ssh/sshd_config dosyasında (ya da /etc/ssh/sshd_config.d/ altındaki bir dosyada):

PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-password

PermitRootLogin no daha da güvenlidir; bunun için önce sudo yetkili ayrı bir kullanıcı oluşturmuş olman gerekir.

Yapılandırmayı kontrol edip servisi yeniden yükle:

sudo sshd -t
sudo systemctl reload ssh     # bazı dağıtımlarda: sshd

Açık olan oturumu kapatmadan yeni bir terminalden tekrar giriş yapmayı dene. Sorun varsa açık oturumdan düzeltebilirsin.

Bazı bulut sağlayıcılarının imajlarında sshd_config.d altındaki bir dosya PasswordAuthentication yes diyerek ana ayarı ezebilir. Ayarın etkin olup olmadığını sudo sshd -T | grep -i passwordauthentication ile kontrol edebilirsin.

4. Kolaylık: SSH yapılandırma dosyası

~/.ssh/config dosyasına ekleyerek uzun komutları kısaltabilirsin:

Host sunucum
    HostName 203.0.113.10
    User deploy
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Artık ssh sunucum yazman yeterli.

Güvenlik önerileri

  • Her cihaz için ayrı anahtar oluştur; bir cihaz kaybolursa sunucudaki authorized_keys dosyasından yalnızca onun satırını silersin.
  • Özel anahtarı e-postayla, mesajla ya da bulut klasöründe paylaşma.
  • Ek koruma için forumdaki "Fail2ban ile SSH ve web saldırılarını otomatik engellemek" ve "Yeni Linux sunucuda kurulumdan sonraki ilk güvenlik adımları" rehberlerine bakabilirsin.

Bağlantı sırasında "Permission denied (publickey)" gibi bir hata alırsan ssh -v kullanici@sunucu çıktısını (IP ve kullanıcı adlarını gizleyerek) bu konunun altına ekleyebilirsin.

0

0 cevap

Henüz cevap yok. İlk cevabı sen yaz.

Cevap yaz

Cevap yazmak için giriş yapmalısın.

Konu bilgisi

  • Açılış12.11.2026
  • Son etkinlik6 saat önce
  • Cevap0
  • Görüntülenme0
  • Beğeni0
Yeni konu aç