Windows'ta SSH anahtarları: yerleşik OpenSSH ile ed25519

2 min
VPS/VDS Hosting

Bir anahtar çifti paroladan çok daha güvenlidir: özel anahtar bilgisayarınızdan asla çıkmaz ve 22. portu tarayan botlar onu tahmin edemez. Windows 10 ve 11'de OpenSSH zaten bulunur; bu yüzden bir anahtar oluşturacak, VPS Linux Infrawire sunucunuza kuracak, Windows ssh-agent hizmetinde yüklü tutacak ve son olarak parola ile girişleri kapatacaksınız.

📋 Ön koşullar

  • OpenSSH istemcisi olan Windows 10 veya 11 (PowerShell'de ssh -V ile kontrol edin).
  • Hâlâ parolayla girebildiğiniz bir Linux VPS (Ubuntu 24.04, Debian 12, AlmaLinux 9 veya Rocky 9): müşteri alanınızdan VPS'in IP adresini ve root parolasını bulabilirsiniz.
  • Yaklaşık on dakika ve güvence olarak ikinci bir SSH oturumu veya VPS konsolu.
PowerShell
ssh -V

🔐 ed25519 anahtarı oluşturma

PowerShell'i açın (yönetici olmayan normal pencere) ve şunu çalıştırın:

PowerShell
ssh-keygen -t ed25519 -C 'USER@my-pc'

Varsayılan yol olan C:\Users\USER\.ssh\id_ed25519 yolunu kabul edin ve bir parola ifadesi girin. Bu ifade özel anahtarı diskte şifreler, bu yüzden çalınan bir dosya işe yaramaz. İki dosya oluşur: id_ed25519 (özel, asla paylaşmayın) ve id_ed25519.pub (açık).

📤 Açık anahtarı VPS'e kopyalama

Windows'ta ssh-copy-id yoktur, bu yüzden anahtarı elle kurun. Önce açık anahtarı görüntüleyin ve satırın tamamını kopyalayın:

PowerShell
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

Parolanızla giriş yapın ve bu satırı sunucuda ekleyin (tek tırnak arasındaki örnek metni gerçek anahtarınızla değiştirin):

Bash
ssh root@VPS_IP mkdir -p ~/.ssh && chmod 700 ~/.ssh echo 'ssh-ed25519 AAAA...your-key... USER@my-pc' >> ~/.ssh/authorized_keys sed -i 's/\r$//' ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys

sed satırı, anahtarı okunamaz hâle getirecek Windows satır sonlarını temizler. Bu iş için ssh'a PowerShell borusu kullanmayın: Windows PowerShell 5.1 verilere satır başı karakterleri ekleyebilir.

🧰 Windows'ta ssh-agent'ı etkinleştirme

Aracı olmadan her girişte parola ifadesini yazmanız gerekir. ssh-agent hizmeti kuruludur ancak varsayılan olarak devre dışı veya elle başlatılır durumdadır. Yönetici PowerShell'de:

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

Ardından normal bir PowerShell'de anahtarınızı bir kez yükleyin ve yüklü anahtarları listeleyin:

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

Aracı, yeniden başlatmadan sonra da anahtarı korur; size tekrar sorulmaz.

✅ Anahtarla girişi test etme

Yeniden bağlanın. Sunucu root parolasını sormadan bir kabuk almalısınız:

PowerShell
ssh root@VPS_IP

Hangi yöntemin kullanıldığını tam görmek için -v ekleyin ve Server accepts key ile Authenticated to ... using publickey ifadelerini arayın:

PowerShell
ssh -v root@VPS_IP

Bu çalışmadan ilerlemeyin ve bu oturumu açık tutun.

🚫 Sunucuda parola kimlik doğrulamasını kapatma

Ubuntu ve Debian'da /etc/ssh/sshd_config.d/ içinde parolaları açan bir dosya (örneğin 50-cloud-init.conf) zaten bulunabilir. SSH okuduğu ilk değeri kullanır; bu yüzden sıralamada daha önce gelen bir dosya oluşturun. VPS'te root olarak çalıştırın:

Bash
grep -ri 'PasswordAuthentication' /etc/ssh/sshd_config /etc/ssh/sshd_config.d/ cat > /etc/ssh/sshd_config.d/10-keys-only.conf <<'EOF' PasswordAuthentication no KbdInteractiveAuthentication no PubkeyAuthentication yes PermitRootLogin prohibit-password EOF sshd -t && systemctl reload ssh

AlmaLinux/Rocky'de hizmetin adı sshd'dir: systemctl reload sshd kullanın. Ana sshd_config dosyasının başlarında Include /etc/ssh/sshd_config.d/*.conf satırının bulunduğundan emin olun (varsayılan budur). Sözdizimi geçerliyse sshd -t hiçbir şey yazdırmaz.

Yeni bir pencereden, parolaların artık reddedildiğini ve anahtarınızın hâlâ çalıştığını doğrulayın:

PowerShell
ssh -o PubkeyAuthentication=no root@VPS_IP

Beklenen yanıt Permission denied (publickey) olmalıdır.

🛠️ Sorun giderme

Permission denied (publickey). Anahtar doğru hesabın authorized_keys dosyasında değil, birden çok satıra yapıştırılmış veya izinler yanlış. Sunucuda chmod 700 ~/.ssh ve chmod 600 ~/.ssh/authorized_keys çalıştırın ve satırın ssh-ed25519 ile başladığını kontrol edin.

WARNING: UNPROTECTED PRIVATE KEY FILE. Diğer Windows hesapları özel anahtarınızı okuyabiliyor. Erişimi yalnızca kullanıcınızla sınırlayın:

PowerShell
icacls $env:USERPROFILE\.ssh\id_ed25519 /inheritance:r /grant:r "${env:USERNAME}:F"

Error connecting to agent: No such file or directory. ssh-agent hizmeti çalışmıyor; yukarıda gösterildiği gibi başlatın.

Değişiklikten sonra erişim kilitlendi. Müşteri alanınızdaki VPS konsolunu kullanın, /etc/ssh/sshd_config.d/10-keys-only.conf dosyasını silin, sshd -t çalıştırın ve SSH hizmetini yeniden yükleyin.


🚀 Windows bilgisayarınız artık VPS'e ed25519 anahtarıyla giriş yapıyor ve parolalar kapalı. Özel anahtarınızın bir yedeğini güvenli bir yerde saklayın.

En yeni teklifler, indirimler ve özel promosyonlardan haberdar olun.

Promosyonları gör

Çerez kullanıyoruz

Sitemizdeki deneyiminizi iyileştirmek için analiz çerezleri kullanıyoruz. Hiçbir veri üçüncü taraflara satılmaz. Daha fazlasını şurada öğrenin: gizlilik politikası.