Ana içeriğe geç

WordPress Güvenli Güncelleme: Ubuntu Üzerinde SSH Anahtarı ile Kurulum

Bu rehberde ne öğreneceksiniz?

Bu rehber, WordPress’te tema ve eklenti kurarken çıkan FTP ekranını kaldırır.
FTP yerine SSH anahtarıyla, daha güvenli güncelleme altyapısı kurarsınız.
Ayrıca dosya sahipliğini web servisinden ayırarak riski azaltırsınız.


🧠 Teknik Özet

Ana teknik konu: Ubuntu üzerinde WordPress için SSH anahtarlı güncelleme kurulumu.
Problem: FTP’nin güvensiz olması ve www-data geniş izin riski oluşturması.
Çözüm: Ayrı kullanıcı oluşturma, SSH anahtarı üretme, izinleri sıkılaştırma, WordPress’i SSH ile çalıştırma.


1️⃣ WordPress için yeni sistem kullanıcısı oluşturun

sudo adduser wp-user
  • Bu komut WordPress dosyalarını yönetecek wp-user hesabını oluşturur.

2️⃣ WordPress dosyalarının sahipliğini ayırın


cd /var/www/html
sudo chown -R wp-user:wp-user /var/www/html
  • Bu işlem WordPress dosyalarını www-data yerine wp-user hesabına geçirir.

3️⃣ SSH anahtar çifti oluşturun


sudo su - wp-user
  • Bu komut wp-user hesabına geçiş yapar.


ssh-keygen -t rsa -b 4096
  • Bu komut 4096 bit RSA anahtarı üretir.

Anahtar yolu olarak /home/wp-user/wp_rsa seçin.

  1. Parola kısmını boş bırakın.

exit
  • Bu komutla normal kullanıcı hesabınıza dönersiniz.

4️⃣ Anahtar izinlerini ve SSH klasörünü güvenli hale getirin


sudo chown wp-user:www-data /home/wp-user/wp_rsa*
sudo chmod 0640 /home/wp-user/wp_rsa*
  • Bu ayarlar anahtarların sadece gerekli taraflarca okunmasını sağlar.

sudo mkdir /home/wp-user/.ssh
sudo cp /home/wp-user/wp_rsa.pub /home/wp-user/.ssh/authorized_keys
sudo chown -R wp-user:wp-user /home/wp-user/.ssh
sudo chmod 700 /home/wp-user/.ssh
sudo chmod 644 /home/wp-user/.ssh/authorized_keys
  • Bu komutlar SSH girişini aktif eder ve izinleri güvenli seviyeye çeker.

5️⃣ WordPress’i SSH anahtarlarıyla güncelleyecek şekilde ayarlayın


sudo nano /var/www/html/wp-config.php
  • Bu komut WordPress yapılandırma dosyasını düzenlemek için açar.

Dosyanın en altına şunları ekleyin:


define('FTP_PUBKEY','/home/wp-user/wp_rsa.pub');
define('FTP_PRIKEY','/home/wp-user/wp_rsa');
define('FTP_USER','wp-user');
define('FTP_PASS','');
define('FTP_HOST','127.0.0.1:22');
  • Bu ayarlar WordPress’i FTP yerine yerel SSH ile dosya yazmaya yönlendirir.

6️⃣ Web sunucusunu yeniden başlatın


sudo service apache2 restart
  • Bu işlem yeni yapılandırmanın devreye girmesini sağlar.

❓ Sıkça Sorulan Sorular (SSS)

1. Neden FTP yerine SSH anahtarı kullanmalıyım? FTP veriyi şifrelemez. SSH şifreli ve daha güvenlidir.

2. “Public and Private keys incorrect” hatası neden olur? Genelde izinler yanlıştır. .ssh 700 olmalı.

3. Bu işlem site hızını etkiler mi? Hayır. Sadece yönetim paneli kurulumlarında çalışır.

4. FTP_HOST içinde localhost yerine IP yazabilir miyim? Yazabilirsiniz. Güvenlik için 127.0.0.1 daha iyidir.

5. Bu kurulum Nginx’te de çalışır mı? Evet. Apache yerine Nginx servis restart değişir.


Sonuç

Bu kurulumla WordPress güncellemeleri daha güvenli olur. Parola riski düşer, dosya izinleri daha kontrollü kalır. Rabisu Bulut altyapısında aynı düzeni kolayca uygulayabilirsiniz 🚀