Ana içeriğe geç
DCHost / Uygulama rehberi

SSH anahtarı oluşturma ve Linux sunucuya tanımlama

Bu rehberin sonunda: Bir anahtar çifti oluşturacak, açık anahtarı sunucu hesabınıza ekleyecek ve yeni bağlantıda çalıştığını deneyeceksiniz. Mevcut bağlantınızı test bitene kadar açık tutun.

SSH anahtarında iki parça bulunur: bilgisayarınızda tuttuğunuz özel anahtar ve sunucuya eklediğiniz açık anahtar. .pub uzantılı dosya açık anahtardır. Özel anahtarı destek talebine, e-postaya veya sunucudaki authorized_keys dosyasına koymayın.

Kapsam: Ubuntu 24.04 LTS veya Debian 13 üzerinde standart OpenSSH kullanıcı hesabı; OpenSSH istemcili Linux, macOS veya Windows bilgisayar. Sunucuya mevcut bir yöntemle giriş yapabiliyor olmanız gerekir. Erişiminiz tamamen kapalıysa önce SSH hata rehberini izleyin.

Görsel anlatımİki dosya, iki farklı görev

Dosya adının sonundaki .pub ayrımı önemlidir.

  • Özel anahtar

    dchost_ed25519 bilgisayarınızda kalır. Sunucuya, e-postaya veya destek talebine yapıştırılmaz.

  • Açık anahtar

    dchost_ed25519.pub sunucudaki hesabınıza eklenir. Giriş izni bu açık anahtarla tanımlanır.

Anahtar parolası özel anahtarı korur; sunucu hesabınızın parolasından ayrıdır.

Başlamadan önce​

İki pencere hazırlayın:

  1. Sunucu penceresi: SSH ile bağlı olduğunuz mevcut pencere.
  2. Bilgisayar penceresi: Bilgisayarınızda yeni açtığınız Terminal veya PowerShell.

Her adımda hangi pencerede çalışacağınızı kontrol edin. Anahtar üretme işlemi bilgisayarda, açık anahtarı tanımlama işlemi sunucuda yapılır.

İlk bağlantınızı kurun ve bu sunucu oturumunu açık bırakın. Anahtarı hangi kullanıcı için tanımlayacağınızı belirleyin. Sunucuda whoami çıktısı bu kullanıcı olmalıdır. Rehberde yeni yönetici hesabı açılmıyor ve SSH sunucu ayarı değiştirilmiyor.

Örneklerdeki kullanıcı, IP ve portu kendi bilgilerinizle değiştirin. Kurumunuz farklı anahtar veya kriptografi politikası kullanıyorsa o politikayı izleyin.

1. Anahtarı kendi bilgisayarınızda oluşturun​

Bilgisayar penceresini kullanın. İşletim sisteminize uygun bloğu seçin; iki bloğu birden çalıştırmayın. Satırları sırayla çalıştırın.

Komut parçasıAnlamı
-t ed25519Anahtar türünü seçer
-fAnahtarın kaydedileceği dosya yolunu belirler
-C "dchost-access"Anahtarı tanımak için açıklama ekler
~ veya $env:USERPROFILEBilgisayarınızdaki kullanıcı klasörüdür

İlk satır klasörü hazırlar. İkinci satır anahtar çiftini oluşturur.

Linux veya macOS Terminal'de:

mkdir -p ~/.ssh
ssh-keygen -t ed25519 -f ~/.ssh/dchost_ed25519 -C "dchost-access"

Windows PowerShell'de:

New-Item -ItemType Directory -Force "$env:USERPROFILE\.ssh"
ssh-keygen -t ed25519 -f "$env:USERPROFILE\.ssh\dchost_ed25519" -C "dchost-access"

Anahtarı korumak için istenen alana güçlü bir anahtar parolası (passphrase) girin. Aynı adlı dosya zaten varsa üzerine yazmayın; mevcut anahtarınız başka hizmetlerde kullanılıyor olabilir. Bu durumda işlemi durdurup farklı dosya adı seçin ve sonraki adımlarda da o adı kullanın.

Beklenen sonuç: Örnek adı değiştirmediyseniz dchost_ed25519 ve dchost_ed25519.pub adlı iki dosya oluşur. Anahtar parolası, yerel özel anahtarı korur; sunucu hesabının parolasından ayrıdır.

2. Yalnız açık anahtarı görüntüleyin​

Bilgisayar penceresinde kalın. Yalnız kendi işletim sisteminizin komutunu çalıştırın. Dosya yolunun sonunda .pub bulunduğunu kontrol edin.

Linux veya macOS:

cat ~/.ssh/dchost_ed25519.pub

Windows PowerShell:

Get-Content "$env:USERPROFILE\.ssh\dchost_ed25519.pub"

ssh-ed25519 ile başlayan tek satırı tamamıyla kopyalayın. Görsel olarak satır kayması normaldir; anahtarı birden fazla gerçek satıra bölmeyin. BEGIN OPENSSH PRIVATE KEY görüyorsanız yanlış dosyayı açmışsınızdır; bu içeriği paylaşmayın.

3. Açık anahtarı sunucudaki hesabınıza ekleyin​

Görsel anlatımAçık anahtarı güvenle tanımlayın

Eski sunucu oturumu, yeni anahtar denenene kadar açık kalır.

  1. .pub satırını kopyalayın

    Kendi bilgisayarınızda ssh-ed25519 ile başlayan açık anahtarın tamamını kopyalayın.

  2. Doğru hesaba ekleyin

    Sunucu penceresinde authorized_keys dosyasının sonuna ekleyin; mevcut anahtarları koruyun.

  3. Yeni pencerede test edin

    Bilgisayarınızda ayrı bağlantı açın; yalnız anahtarla giriş ve doğru kullanıcıyı doğrulayın.

Özel anahtarı kaybederseniz yeni anahtarı ekleyip test edin; sonra eski açık anahtarı kaldırın.

Sunucu penceresine geçin. Önce whoami çalıştırın; ekranda anahtarı kullanacak hesap görünmeli. Buradaki ~ artık sunucudaki bu hesabın klasörüdür.

İlk beş satır anahtar klasörü ile dosyasını uygun izinlerle hazırlar. authorized_keys, bu hesaba girişine izin verilen açık anahtarların listesidir.

Açık bıraktığınız sunucu oturumunda, hedef kullanıcıyla aşağıdaki komutları sırayla çalıştırın:

umask 077
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
cat >> ~/.ssh/authorized_keys

Son komut metin bekler; imlecin beklemesi normaldir:

  1. Önce Enter'a basın. Böylece önceki anahtarla yanlışlıkla birleşmeyi önlersiniz.
  2. Kopyaladığınız açık anahtarın tek satırını yapıştırın.
  3. Tekrar Enter'a basın.
  4. Boş satırdayken Ctrl+D tuşlarına basın.

>> mevcut anahtarları koruyarak ekler. Tek > kullanmayın; mevcut listeyi siler.

Bu işlemleri sudo ile başka kullanıcının ev dizinine uygulamayın. Merkezi kimlik yönetimi veya farklı AuthorizedKeysFile ayarı varsa standart dosya yolu geçerli olmayabilir; sunucu yöneticinizden hesabınız için doğru yöntemi öğrenin.

Beklenen sonuç: Ctrl+D sonrasında sunucunun komut istemi geri gelir. Anahtar dosyaya eklenmiştir; girişte çalıştığını sonraki adım doğrular.

4. Ayrı bir pencerede anahtarla giriş yapın​

Kullanıcı, IP ve port örneklerini değiştirin. Dosyaya başka ad verdiyseniz -i sonrasındaki yolu da değiştirin.

-i kullanılacak özel anahtar dosyasını seçer. IdentitiesOnly=yes, kendiliğinden sunulan başka anahtarları sınırlar.

Bilgisayarınızda yeni bir pencere açın. Linux veya macOS:

ssh -o IdentitiesOnly=yes -o PreferredAuthentications=publickey -i ~/.ssh/dchost_ed25519 -p 22 sunucu_kullanicisi@203.0.113.10

Windows PowerShell:

ssh -o IdentitiesOnly=yes -o PreferredAuthentications=publickey -i "$env:USERPROFILE\.ssh\dchost_ed25519" -p 22 sunucu_kullanicisi@203.0.113.10

Bu testte PreferredAuthentications=publickey, başarısız anahtar denemesinden sonra sunucu hesabının parolasına geçilmesini önler. Enter passphrase for key ise bilgisayarınızdaki anahtarı açmak için kendi anahtar parolanızı sorar. Yeni oturumda whoami ile doğru hesabı doğrulayın. Anahtarla açılan bu bağlantı başarılı olduktan sonra eski oturumu kapatabilirsiniz.

Sunucunuz anahtarın yanında parola veya ikinci faktör de zorunlu tutuyorsa yalnız anahtarla yapılan bu test tamamlanmayabilir. Kurumunuzun giriş yöntemini izleyin; testi geçirmek için ek doğrulamayı kapatmayın.

Başarı kontrolü: Yeni oturumdaki whoami doğru kullanıcıyı gösteriyorsa anahtarla giriş testi tamamlanmıştır. Test başarısızsa eski oturumu açık tutun.

Sık hata ve geri dönüş​

Permission denied (publickey) alırsanız kullanıcı adını, seçtiğiniz anahtar dosyasını ve açık anahtarın eksiksiz tek satır oluşunu kontrol edin. .ssh ve authorized_keys dosyalarının hedef kullanıcıya ait olması gerekir. Sorunu çözmek için bütün dizine 777 izni vermeyin.

Bu rehber parola erişimini, root girişini veya güvenlik duvarını kapatmaz. Sonradan bunları değiştirecekseniz önce ayrı anahtar oturumunu ve gerçekten kullanabildiğiniz kurtarma yöntemini doğrulayın. Eklemeyi geri almak için çalışan oturumdan yalnız eklediğiniz açık anahtar satırını kaldırın; tüm authorized_keys dosyasını silmeyin. Özel anahtar kaybolduysa veya paylaşıldıysa yeni bir anahtar tanımlayıp erişimini test ettikten sonra eski açık anahtarı kaldırın.

Kaynaklar ve ilgili rehberler​