SSH anahtarı nedir?
SSH anahtarı, sunucuya parola yerine bir anahtar çiftiyle bağlanmanızı sağlayan kimlik doğrulama yöntemidir. Özel anahtar sizde kalır, ona karşılık gelen genel anahtar sunucuya eklenir. Bağlanırken sunucu, özel anahtara sahip olduğunuzu kanıtlatır ve parola hiç ağa gönderilmez.
Anahtar tabanlı giriş, parola tahminine dayalı kaba kuvvet saldırılarına karşı çok daha dayanıklıdır. Sunucu yönetiminde önerilen standart yöntemdir.
Nasıl çalışır?
Anahtar çifti asimetrik şifrelemeye dayanır. Genel anahtar paylaşılabilir; özel anahtar ise kimseyle paylaşılmaz. Bağlantıda sunucu bir meydan okuma gönderir, istemci bunu özel anahtarıyla imzalar ve sunucu genel anahtarla imzayı doğrular. Özel anahtar hiçbir zaman sunucuya iletilmez.
Anahtar dosyasını ek bir parola (passphrase) ile korumak, dosya çalınsa bile doğrudan kullanılmasını engeller.
Sunucu ve hosting ortamında
Linux sunucularda genel anahtar, ilgili kullanıcının ~/.ssh/authorized_keys dosyasına eklenir. cPanel gibi panellerde SSH erişimi bölümünden anahtar oluşturup yetkilendirebilirsiniz. Anahtar çifti oluşturmak için genellikle şu komut kullanılır:
ssh-keygen -t ed25519
Anahtarla giriş çalıştığını doğruladıktan sonra, sshd_config dosyasında parola ile girişi kapatmak saldırı yüzeyini önemli ölçüde azaltır. Birden fazla sunucuyu yönetenler için ssh-agent özel anahtarı bellekte güvenle tutar.
Nasıl uygulanır?
- Modern bir algoritma seçin; Ed25519 genellikle iyi bir tercihtir.
- Özel anahtarınızı bir passphrase ile koruyun.
- Özel anahtar dosyasının izinlerini kısıtlayın (yalnızca sahibi okuyabilsin).
- Her cihaz için ayrı anahtar kullanın ki gerektiğinde tek tek iptal edebilesiniz.
- Kullanılmayan genel anahtarları authorized_keys dosyasından düzenli olarak silin.
- Anahtarla girişi test ettikten sonra parola girişini kapatın.
Sık yapılan hatalar
- Özel anahtarı e-postayla göndermek veya herkese açık depolara yüklemek.
- Aynı anahtarı tüm cihaz ve kişilerle paylaşmak.
- Parola girişini kapatmadan önce anahtarla girişi test etmemek ve kendini dışarıda bırakmak.
- Eski ve artık kullanılmayan anahtarları temizlememek.
Sık sorulan sorular
SSH anahtarı parolaya göre neden daha güvenlidir?
Anahtarlar uzun ve rastgele olduğu için tahmin edilemez ve ağ üzerinden gönderilmez. Parola ise zayıf seçilebilir ve kaba kuvvetle denenebilir.
Özel anahtarımı kaybedersem ne yapmalıyım?
Yeni bir anahtar çifti oluşturun, genel anahtarı sunuculara ekleyin ve eskisini authorized_keys dosyalarından kaldırın. Anahtar ele geçirilmiş olabilirse bunu hemen yapmalısınız.
Genel anahtarı paylaşmak güvenli mi?
Evet. Genel anahtar yalnızca doğrulama için kullanılır ve onunla giriş yapılamaz. Paylaşılmaması gereken tek parça özel anahtardır.
Bu terimin geçtiği rehberler
- Proxmox VE’de LXC konteyner oluşturma ve yönetme (pct)Proxmox VE’de LXC konteyneri pct komutuyla oluşturun, başlatın ve yönetin: şablon indirme, kaynak ayarı, anlık görüntü, yedek ve ayrıcalıksız konteyner güvenliği.
- Proxmox VE’de cloud-init ile sanal makine şablonlarıProxmox VE’de bir cloud-init sanal makine şablonu hazırlayın; qm ile şablondan klonlayıp kullanıcı, SSH anahtarı ve IP ayarlarını saniyeler içinde tanımlayın.
- Kontrol panelinde yedekleme ve geri yükleme stratejisi (panelden bağımsız yaklaşım)cPanel, Plesk ve DirectAdmin için ortak bir yedekleme stratejisi: 3-2-1 kuralı, veritabanı dökümü, sunucu dışı depolama, restic ile sürümlü yedek ve düzenli geri yükleme testi.
- SSH anahtarı oluşturma ve yönetimi (ed25519, ssh-agent, authorized_keys)ed25519 SSH anahtarı oluşturun, sunucuya ekleyin, ssh-agent ile parola girişini kolaylaştırın, authorized_keys dosyasını yönetin ve parolayla girişi güvenle kapatın.
İlgili terimler
- SSO (Tek oturum açma)Bir kez giriş yapıp birden çok uygulamaya erişebilme.
- sudoYetkili bir kullanıcının tek bir komutu root yetkisiyle çalıştırmasını sağlayan araç.
- TOTPZamana dayalı, 30 saniyede bir değişen tek kullanımlık kod yöntemi.
- Yetkilendirme (authorization)Doğrulanmış bir kimliğin hangi kaynaklara ve işlemlere erişebileceğinin belirlenmesi.
- API anahtarıBir uygulamanın bir API’ye kendini tanıtmak için kullandığı gizli değer.
- Ayrıcalıklı erişim yönetimi (PAM)Yönetici ve root gibi yüksek yetkili hesapların kontrol altında kullanılmasını, kaydedilmesini ve sınırlandırılmasını sağlayan yaklaşım.