Skip to main content

🔐 Ubuntu'da SSH Anahtarları Kurulumu: Güvenli ve Şifresiz Erişim Rehberi

Bu rehber, Ubuntu sunucularınıza SSH anahtarlarıyla güvenli ve şifresiz erişim sağlamayı adım adım açıklar.
Yeni bir Ed25519 anahtar çifti oluşturacak, genel anahtarı ssh-copy-id komutuyla sunucuya aktaracak ve parolalı erişimi kapatarak tam güvenlik sağlayacaksınız.


🧠 1. Teknik Özet

AlanAçıklama
Ana Teknik KonuUbuntu üzerinde SSH anahtar tabanlı kimlik doğrulama kurulumu
Çözülen ProblemParola tabanlı SSH bağlantılarının brute-force saldırılarına açık olması
İzlenen Adımlar1️⃣ Anahtar oluşturma • 2️⃣ Genel anahtarı sunucuya kopyalama • 3️⃣ Parola girişini kapatma • 4️⃣ Gelişmiş güvenlik ayarları
Önerilen Algoritma🔒 Ed25519 – modern, hızlı ve güçlü güvenlik sağlar

🚀 2. SSH Anahtarlarının Mantığı

SSH (Secure Shell), uzak sistemlere güvenli erişim için kullanılır.
Parolalar zayıf kalırken, SSH anahtarları kamu/özel anahtar şifrelemesiyle güvenliği artırır.

TürAçıklama
Özel Anahtar (Private Key)Kimliğini kanıtlayan dosyadır. Yalnızca sende kalır.
Genel Anahtar (Public Key)Sunucuya kopyalanır ve giriş doğrulaması için kullanılır.

💡 Ed25519, hız ve güvenlik açısından 2025 itibarıyla en önerilen anahtar algoritmasıdır.


⚙️ 3. Gereksinimler

GereksinimAçıklama
Ubuntu sürümü22.04 LTS veya üzeri
Kullanıcısudo yetkisine sahip, root olmayan kullanıcı
Paketleropenssh-client (yerel), openssh-server (sunucu)
# SSH bileşenlerini yükle
sudo apt update
sudo apt install openssh-server openssh-client

🔑 4. SSH Anahtar Çifti Oluşturma

Yeni bir SSH anahtar çifti oluşturmak için aşağıdaki komutu çalıştır:


ssh-keygen -t ed25519

Ardından sırasıyla:

Kayıt yolu: ~/.ssh/id_ed25519 (ENTER ile onayla)

Parola (passphrase): Güçlü bir parola belirle

Sonuç:

~/.ssh/id_ed25519 → Özel anahtar

~/.ssh/id_ed25519.pub → Genel anahtar

DosyaİzinAçıklama
id_ed25519600Özel anahtar – gizli tutulur
id_ed25519.pub644Genel anahtar – sunucuya gönderilir

☁️ 5. Genel Anahtarı Sunucuya Aktarma

En kolay yöntem ssh-copy-id komutudur:


ssh-copy-id kullanici@sunucu_ip

Bu komut:

~/.ssh dizinini oluşturur,

authorized_keys dosyasını ayarlar,

İzinleri doğru biçimde düzenler.

Artık giriş yapabilirsin:


ssh kullanici@sunucu_ip

🧭 Alternatif (Manuel Yöntem)


cat ~/.ssh/id_ed25519.pub

Sunucuda:


mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ANAHTAR_METNI" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

🧱 6. Parolalı Girişi Kapatma (Güvenlik Adımı)

SSH yapılandırma dosyasını düzenle:


sudo nano /etc/ssh/sshd_config

Aşağıdaki satırları bul ve düzenle:


PasswordAuthentication no
PermitRootLogin no

Kaydet, çık ve SSH servisini yeniden başlat:


sudo systemctl restart ssh

⚠️ Uyarı: Anahtar girişin test edilmeden bu adımı uygulama, erişimi kaybedebilirsin.


🧰 7. SSH Agent ile Parola Kolaylığı

Anahtarına parola eklediysen, SSH Agent seni her girişte parola yazmaktan kurtarır.


eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Bu sayede aynı oturumda anahtarı bir kez doğrulaman yeterli olur.


📁 8. Çoklu Anahtar Yönetimi (config Dosyası)

Birden fazla sunucu kullanıyorsan ~/.ssh/config dosyasını oluştur:


touch ~/.ssh/config
nano ~/.ssh/config

Örnek:


# Rabisu Bulut
Host rabisu
HostName 203.0.113.42
User devadmin
IdentityFile ~/.ssh/id_ed25519_rabisu

# GitHub
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_github

Artık sadece:


ssh rabisu

yazarak bağlanabilirsin. 🚀


🧩 9. İzinleri Doğru Ayarlama

SSH izinleri hatalıysa bağlantı reddedilir. Doğru ayarları uygulamak için:

YolKomutAçıklama
~/.ssh/chmod 700 ~/.sshSadece sahibi erişebilir
~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keysYalnızca sahibi okuyabilir/yazabilir
~/.ssh/id_ed25519chmod 600 ~/.ssh/id_ed25519Özel anahtar koruma altında

🧱 10. Sık Karşılaşılan Hatalar

SorunNedenÇözüm
Permission denied (publickey)Hatalı izinlerchmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
Connection refusedSSH servisi durdurulmuşsudo systemctl restart ssh
user not in the sudoers fileKullanıcı sudo grubunda değilsudo usermod -aG sudo <kullanıcı>
parse error near 'ALL'Sudoers dosyası hatalısudo visudo -c ile kontrol et

🧱 11. Gelişmiş Güvenlik Önerileri

Root girişi kapalı olmalı.

SSH portunu değiştir: /etc/ssh/sshd_config → Port 2222

Fail2Ban kur: sudo apt install fail2ban

Anahtar rotasyonu: Yılda en az bir kez anahtar değiştir.

Yedekleme: Özel anahtarı şifreli depoda sakla.


🧠 12. Sıkça Sorulan Sorular (SSS)

  1. SSH anahtar parolamı unuttum, ne yapmalıyım?

Yedek anahtar kullan veya web konsolu üzerinden yeni bir genel anahtar ekle.

  1. Neden RSA yerine Ed25519 öneriliyor?

Daha güvenli, daha kısa anahtar boyu, daha hızlı doğrulama.

  1. ssh-copy-id çalışmıyorsa ne yapmalıyım?

Anahtarı elle ekle:


mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ANAHTAR" >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
  1. Bağlantı hatası alıyorum, nereden başlamalıyım?

ssh -v kullanici@sunucu komutuyla hata detaylarını incele.

  1. Sunucuda SSH portu kapalıysa?

sudo ufw allow ssh ile portu aç.


✅ 13. Sonuç

Artık Ubuntu üzerinde parolasız, güvenli SSH erişimi kurdun 🎉 Bu yapılandırma:

Brute-force saldırılarını engeller,

Girişi hızlandırır,

Yönetimi kolaylaştırır.

🌩️ Ek güvenlik adımlarını Rabisu Bulut altyapında hemen uygulayabilir, SSH anahtar yönetimini otomatik hale getirebilirsin.