Sunucunuz için SSH anahtarlarını kurun
Windows, macOS veya Linux'ta Ed25519 SSH anahtarı oluşturun, sunucunuza kopyalayın, şifresiz giriş yapın ve özel anahtarı parola ve agent ile koruyun.
- Başlangıç
- 12 dk okuma
- Güncellendi
Denendiği sistemler: Ubuntu 24.04 LTS, Ubuntu 26.04 LTS, Debian 12, Debian 13, Windows 11, macOS Tahoe 26
Bu sayfada
Bir SSH anahtar çifti iki parçadan oluşur: bilgisayarınızda kalan bir özel anahtar ve sunucuya koyduğunuz bir açık anahtar. Bağlandığınızda bilgisayarınız özel anahtara sahip olduğunu kanıtlar; ağda hiçbir şifre dolaşmaz ve saldırganların tahmin edebileceği bir şey kalmaz. Bu rehberde bir anahtar oluşturacak, sunucunuza kuracak ve test edeceksiniz.
Başlamadan önce
- Sunucuya zaten giriş yapabiliyorsunuz; örneğin hoş geldiniz e-postasındaki şifreyle
rootolarak. Bkz. Linux sunucunuza SSH ile bağlanın. - Hangi kullanıcıyla giriş yapacağınızı biliyorsunuz. Örneklerde kullanıcı
alex, sunucu203.0.113.10'dur; ikisini de kendi değerlerinizle değiştirin. - Windows 10 ve 11'de OpenSSH istemcisi hazır gelir; macOS ve Linux'ta da bulunur.
1. adım: Bir anahtar çifti oluşturun
Bunu sunucuda değil, kendi bilgisayarınızda çalıştırın:
ssh-keygen -t ed25519 -C "alex@laptop"-C değeri yalnızca anahtarı sonra tanımanıza yardımcı olan bir açıklamadır. Varsayılan dosyayı kabul etmek için Enter'a basın, ardından parolayı iki kez girin.
Doğrulama: ev dizininizdeki .ssh klasöründe artık iki dosya bulunur: id_ed25519 (özel anahtar, asla paylaşmayın) ve id_ed25519.pub (açık anahtar). Parmak izini şu komutla görün:
ssh-keygen -lf ~/.ssh/id_ed25519.pubWindows'ta klasör C:\Users\Adiniz\.ssh konumundadır; PowerShell bu komuttaki ~ işaretini de anlar.
2. adım: Açık anahtarı sunucuya kopyalayın
macOS ve Linux
ssh-copy-id şifrenizle bir kez giriş yapar ve anahtarı doğru dosyaya, doğru izinlerle ekler:
ssh-copy-id -i ~/.ssh/id_ed25519.pub alex@203.0.113.10Windows
Windows'ta ssh-copy-id yoktur. Bunun yerine anahtarı PowerShell'den SSH üzerinden gönderin:
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | ssh alex@203.0.113.10 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"İstendiğinde kullanıcının şifresini girin.
Elle
Sunucuda, anahtarı kabul edecek kullanıcıyla giriş yapmışken:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keysid_ed25519.pub dosyanızdaki tek satırı yapıştırın, kaydedin, ardından izinleri ayarlayın:
chmod 600 ~/.ssh/authorized_keysauthorized_keys dosyasındaki her satır bir açık anahtardır. Her satıra bir anahtar yazın ve oraya asla özel anahtar yapıştırmayın.
3. adım: Anahtarı test edin
Yeni bir terminal açın ve bağlanın:
ssh -i ~/.ssh/id_ed25519 alex@203.0.113.10Doğrulama: istemci sunucu şifresini değil anahtarın parolasını sorar ve sizi içeri alır. Ayrıntısını görmek isterseniz ssh -v [email protected] çalıştırın: Authenticated to 203.0.113.10 ([203.0.113.10]:22) using "publickey". gibi bir satır anahtarın kullanıldığını doğrular.
4. adım: Parolayı bir agent'a hatırlatın
Windows
ssh-agent servisi varsayılan olarak kapalıdır. PowerShell'de yönetici olarak:
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agentArdından normal kullanıcınızla:
ssh-add $env:USERPROFILE\.ssh\id_ed25519macOS
Anahtarı agent'a ekleyin ve parolayı anahtar zincirinizde saklayın:
ssh-add --apple-use-keychain ~/.ssh/id_ed25519Linux
Çoğu masaüstü oturumu sizin için bir agent başlatır:
ssh-add ~/.ssh/id_ed25519Doğrulama: ssh-add -l anahtarın parmak izini listeler ve yeni bağlantılar artık parola sormaz.
5. adım: Bir kısayol kaydedin (isteğe bağlı)
Bilgisayarınızdaki ~/.ssh/config dosyasına bir kayıt ekleyin:
Host myserver
HostName 203.0.113.10
User alex
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yesArtık ssh myserver yeterlidir. IdentitiesOnly yes, istemcinin yalnızca bu anahtarı sunmasını sağlar; çok sayıda anahtarınız olduğunda "Too many authentication failures" hatasını önler.
PuTTY kullanıyorsanız
PuTTY kendi anahtar biçimini (.ppk) kullanır. PuTTYgen'i açın ve ya anahtar türü EdDSA (Ed25519) ile Generate'i seçin ya da mevcut OpenSSH anahtarınızı Conversions › Import key ile yükleyin. Bir parola belirleyin, ardından Save private key'i seçin. "Public key for pasting into OpenSSH authorized_keys file" kutusundaki metni 2. adımdaki gibi sunucudaki authorized_keys dosyasına kopyalayın. PuTTY'de Open'ı seçmeden önce .ppk dosyasını Connection › SSH › Auth › Credentials altında seçin ve oturumu kaydedin.
Donanım güvenlik anahtarları
Bir FIDO2 güvenlik anahtarınız varsa yalnızca cihaz takılıyken ve dokunulduğunda çalışan bir anahtar oluşturabilirsiniz:
ssh-keygen -t ed25519-skSunucuda OpenSSH 8.2 veya daha yeni bir sürüm çalışmalıdır; tüm güncel Ubuntu ve Debian sürümleri bu koşulu karşılar. Cihaz kaybolursa diye ikinci bir anahtar veya başka bir giriş yolu bulundurun.
Sorun giderme
Sunucu hâlâ şifre soruyor. Anahtar kabul edilmedi. Sunucuda ~/.ssh izninin 700, authorized_keys izninin 600 olduğunu, ikisinin de kullanıcıya ait olduğunu ve anahtarın bölünmemiş tek bir satırda durduğunu kontrol edin. ssh -v istemcinizin hangi anahtarları sunduğunu gösterir.
Permission denied (publickey). Şifreyle giriş zaten kapalı ve anahtar kabul edilmiyor. Başka bir yolla girin (hizmet sayfanızda görünüyorsa web konsolu) ve authorized_keys dosyasını düzeltin. Bkz. SSH bağlantı sorunları.
WARNING: UNPROTECTED PRIVATE KEY FILE! Özel anahtar dosyanızı başka kullanıcılar okuyabiliyor. macOS ve Linux'ta chmod 600 ~/.ssh/id_ed25519 çalıştırın. Windows'ta dosyanın Özellikler › Güvenlik sekmesinden diğer kullanıcıları kaldırın.
Too many authentication failures. Agent'ınız çok fazla anahtar sundu. 5. adımdaki gibi bu sunucu için IdentitiesOnly yes ve bir IdentityFile satırı ekleyin.
Sonraki adımlar
- Şifre ve root girişlerini kapatın: SSH sıkılaştırma.
- İlk saat kontrol listesini tamamlayın: yeni bir Linux sunucuyu güvenli hale getirin.
Sık sorulan sorular
Hangi anahtar türünü oluşturmalıyım?
Ed25519. Kısa ve hızlıdır, tüm güncel OpenSSH sürümleri destekler. En az 3072 bit RSA'yı yalnızca Ed25519 kabul etmeyen eski sistemler için kullanın.
Parola (passphrase) gerekli mi?
Öneririz. Parola olmadan özel anahtar dosyasını kopyalayan herkes sizin adınıza giriş yapabilir. SSH agent parolayı oturumunuz boyunca hatırlar; her bağlantıda değil yalnızca bir kez yazarsınız.
Aynı anahtarı birden fazla sunucuda kullanabilir miyim?
Evet. Açık anahtar istediğiniz kadar sunucuya eklenebilir. Birçok kişi her bilgisayar için ayrı bir anahtar kullanır; böylece kaybolan bir dizüstü bilgisayar için tüm anahtarları değiştirmek yerine yalnızca bir anahtarı her yerden kaldırmak yeterli olur.
Özel anahtarımı kaybettim. Nasıl yeniden girerim?
Başka bir yolla giriş yapın; örneğin hâlâ izinliyse şifreyle ya da hizmet sayfanızda görünüyorsa web konsoluyla. Ardından yeni bir açık anahtar ekleyin ve authorized_keys dosyasından eski satırı silin. Hiçbir giriş yolunuz yoksa bir destek bildirimi açın.
Sonrasında şifreyle girişi kapatmalı mıyım?
Evet, anahtarla girişin ikinci bir oturumda çalıştığını doğruladıktan sonra. SSH sıkılaştırma rehberimiz gereken ayarları tam olarak gösterir.