İçeriğe geç

Başlarkenİlk adımlar

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
  1. Başlamadan önce
  2. 1. adım: Bir anahtar çifti oluşturun
  3. 2. adım: Açık anahtarı sunucuya kopyalayın
  4. 3. adım: Anahtarı test edin
  5. 4. adım: Parolayı bir agent'a hatırlatın
  6. 5. adım: Bir kısayol kaydedin (isteğe bağlı)
  7. PuTTY kullanıyorsanız
  8. Donanım güvenlik anahtarları
  9. Sorun giderme
  10. Sonraki adımlar

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 root olarak. Bkz. Linux sunucunuza SSH ile bağlanın.
  • Hangi kullanıcıyla giriş yapacağınızı biliyorsunuz. Örneklerde kullanıcı alex, sunucu 203.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:

Bash
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:

Bash
ssh-keygen -lf ~/.ssh/id_ed25519.pub

Windows'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:

Bash
ssh-copy-id -i ~/.ssh/id_ed25519.pub alex@203.0.113.10

Windows

Windows'ta ssh-copy-id yoktur. Bunun yerine anahtarı PowerShell'den SSH üzerinden gönderin:

PowerShell
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:

Bash
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

id_ed25519.pub dosyanızdaki tek satırı yapıştırın, kaydedin, ardından izinleri ayarlayın:

Bash
chmod 600 ~/.ssh/authorized_keys

authorized_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:

Bash
ssh -i ~/.ssh/id_ed25519 alex@203.0.113.10

Doğ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:

PowerShell
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent

Ardından normal kullanıcınızla:

PowerShell
ssh-add $env:USERPROFILE\.ssh\id_ed25519

macOS

Anahtarı agent'a ekleyin ve parolayı anahtar zincirinizde saklayın:

Bash
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Linux

Çoğu masaüstü oturumu sizin için bir agent başlatır:

Bash
ssh-add ~/.ssh/id_ed25519

Doğ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:

Text
Host myserver
    HostName 203.0.113.10
    User alex
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes

Artı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:

Bash
ssh-keygen -t ed25519-sk

Sunucuda 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

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.

Kaynaklar

Şifre Oluştur

Lütfen onaylayın