SSH Anahtarı Nasıl Oluşturulur ve Sunucuya Eklenir?
Kısa yanıt: Terminalde (Windows’ta PowerShell) ssh-keygen -t ed25519 -C "e-posta@adresiniz" komutunu çalıştırın, bir parola belirleyin. Oluşan açık anahtarı (id_ed25519.pub) ssh-copy-id kullanici@SUNUCU_
Bu rehber kimin için: VPS veya SSH erişimi olan kullanıcılar · Gereken süre: 10 dakika · Seviye: Orta
SSH anahtarı, şifre yerine kriptografik bir anahtar çiftiyle giriş yapmanızı sağlar. Özel anahtar bilgisayarınızda kalır, açık anahtar sunucuya eklenir. Anahtarla giriş, kaba kuvvet şifre saldırılarını etkisiz hâle getirir ve her bağlantıda şifre yazma zorunluluğunu kaldırır.
Anahtar oluşturma ve ekleme
- Terminali açın: Windows 10/11’de PowerShell, macOS ve Linux’ta Terminal.
- Anahtarı oluşturun: ssh-keygen -t ed25519 -C "[email protected]" komutunu çalıştırın; varsayılan konumu onaylayın.
- Parola belirleyin: Özel anahtarınızı korumak için bir parola girin; bilgisayarınız çalınırsa anahtar tek başına kullanılamaz.
- Açık anahtarı kopyalayın: macOS/Linux'ta ssh-copy-id kullanici@SUNUCU_
IP. Windows'ta type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh kullanici@SUNUCU_ IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys". - İzinleri ayarlayın: Sunucuda chmod 700 ~/.ssh ve chmod 600 ~/.ssh/authorized_keys.
- Test edin: ssh kullanici@SUNUCU_
IP ile şifre sorulmadan bağlandığınızı doğrulayın.
cPanel ve PuTTY
Paylaşımlı hosting’de cPanel › Güvenlik › SSH Erişimi › “SSH Anahtarlarını Yönet” ekranından açık anahtarınızı içe aktarıp “Yetkilendir” düğmesine basmanız gerekir; ayrıntılar için cPanel SSH erişimi. PuTTY kullanıyorsanız PuTTYgen ile anahtarı .ppk biçimine dönüştürün. Windows’un yerleşik OpenSSH istemcisi PuTTY’ye gerek bırakmaz.
Anahtarı günlük kullanımda yönetme
Parolayla korunan bir anahtarı her bağlantıda yeniden açmamak için ssh-agent kullanın: anahtar oturum boyunca bellekte tutulur, parolayı yalnız bir kez yazarsınız.
Birden çok sunucuya bağlanıyorsanız ayarları kendi bilgisayarınızdaki ~/.ssh/config dosyasına yazın; böylece her seferinde IP, kullanıcı ve port yazmazsınız:
- Windows: Yönetici olarak açtığınız PowerShell’de
Set-Service -Name ssh-agent -StartupType AutomaticveStart-Service ssh-agentkomutlarını, ardından kendi kullanıcınızlassh-add $env:USERPROFILE\.ssh\id_ed25519komutunu çalıştırın. - macOS ve Linux:
ssh-add ~/.ssh/id_ed25519yeterlidir; macOS’ta parolayı anahtar zincirine kaydetmek içinssh-add --apple-use-keychain ~/.ssh/id_ed25519kullanın.
Bundan sonra terminalde ssh sunucum yazmanız yeterlidir.
Host sunucumsatırı sunucuya vereceğiniz kısa adı tanımlar.HostName 203.0.113.10,User deployve port değiştirdiysenizPort 2222bağlantı bilgileridir.IdentityFile ~/.ssh/id_ed25519veIdentitiesOnly yesyalnız bu anahtarın denenmesini sağlar.
Anahtarı kaldırma ve yenileme
Bir cihazınızı kaybettiğinizde ya da sunucuya erişen biri ayrıldığında, ilgili açık anahtarın satırını sunucudaki ~/.ssh/authorized_keys dosyasından silin; satırın sonundaki açıklama, anahtarı oluştururken -C ile verdiğiniz metindir ve hangi anahtar olduğunu gösterir. Düzenlemeden sonra dosya izninin 600 kaldığını kontrol edin ve diğer anahtarlarla girişin çalıştığını yeni bir terminalden deneyin. Her cihaz için ayrı anahtar kullanırsanız tek bir anahtarı iptal etmek diğer erişimleri etkilemez.
Hâlâ çözülmediyse
“Permission denied (publickey)” hatası alırsanız authorized_keys dosyasının doğru kullanıcının ana dizininde olduğunu ve izinlerin doğru olduğunu kontrol edin; ssh -v ile ayrıntılı çıktı alın. Anahtarla giriş varsayılan olarak desteklenen VPS sunucu paketlerimizi inceleyebilirsiniz.
Sık sorulan sorular
RSA mı Ed25519 mu?
Ed25519 daha kısa, hızlı ve günümüz için önerilen türdür. Çok eski sistemler için RSA 4096 kullanabilirsiniz.
Özel anahtarı kaybedersem?
Yeni bir anahtar çifti oluşturun ve açık anahtarı, kayıtlı e-posta adresinizden isteyeceğiniz konsol erişimiyle ya da hâlâ açık olan başka bir oturumla sunucudaki ~/.ssh/authorized_keys dosyasına ekleyin; kaybolan anahtarın satırını da bu dosyadan silin.
Bağlanırken “Too many authentication failures” hatası alırsam ne yapmalıyım?
SSH istemcisi ajanda yüklü bütün anahtarları sırayla dener ve sunucunun izin verdiği deneme sayısı doğru anahtara gelmeden dolar. ~/.ssh/config dosyasında ilgili sunucu için IdentityFile satırıyla doğru anahtarı belirtip IdentitiesOnly yes ekleyin ya da tek seferlik bağlantıda ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 kullanici@SUNUCU_
İlgili rehberler
- Ubuntu VPS İlk Kurulum: 10 Adımda Güvenli Başlangıç
- Paylaşımlı Hostingte SSH ve cPanel Terminal Var mı?
- VPS’e SSH ile Bağlanma (Windows, macOS, Linux)
Bu rehber işinize yaradı mı?
Teşekkürler. Çözüm bulamadıysanız destek talebi açın veya [email protected] adresine yazın.