Yeni sunucuya SSH girişi: şifreden root kapatmaya

Yeni bir sunucu aldınız ve hemen şimdi giriş yapmanız mı gerekiyor? Bu kılavuz adım adım SSH girişini, root olmayan kullanıcı oluşturmayı, anahtar aktarımını ve root girişini kapatmayı gösterir.

6 dk Güncellendi 12 Oct 2026

Sunucuyu teslim aldınız, root şifresi panelde ve yaptığınız ilk şey şu:

ssh root@185.10.20.30

Ve birkaç saniye sonra şunu görüyorsunuz:

Permission denied (publickey).

Ya da daha kötüsü: giriş yapıyorsunuz, işinizi hallediyorsunuz ve ertesi sabah aynı komut yanıt vermiyor çünkü dışarıdan biri binlerce kez şifreyi denemiş ve fail2ban sizin IP'nizi kapatmış. Bu makale o ilk bir saatle ilgili; doğru yapılırsa sunucunun geri kalan ömrü daha rahat geçer.

Önce SSH girişinin neden reddedildiğini teşhis edin

Herhangi bir değişiklikten önce hata mesajını okuyun. Üç yaygın durum var ve her birinin tedavisi farklı.

  • Connection refused, sshd servisinin ayakta olmadığı veya başka bir portta dinlediği anlamına gelir. Sunucu panel konsolundan (VNC) giriş yapın ve systemctl status sshd yazın.
  • Permission denied (publickey), sunucunun yalnızca anahtar kabul ettiği ve sizin anahtar göndermediğiniz anlamına gelir. ssh -v root@IP ile hangi anahtarların önerildiğini görün.
  • Connection timed out neredeyse her zaman güvenlik duvarıdır, SSH değil. Ya bulut panelinde port kapalıdır ya da sunucudaki ufw 22 numaralı portu açık bırakmamıştır.

Hiçbiri işe yaramadıysa ve konsolunuz da yoksa, kurtarma yolu genellikle rescue modunda önyükleme yapmaktır; yöntem adım adım sunucuyu yeniden kurma ve rescue moduyla çalışma bölümünde anlatılmıştır. Bunu erişimi bozmadan önce okuyun, sonra değil.

Her şeyden önce root olmayan kullanıcı oluşturun

Root ile çalışmak cezbedici ve yanlıştır. Bir kullanıcı oluşturun, sudo grubuna ekleyin ve o andan itibaren onunla giriş yapın:

adduser ali
usermod -aG sudo ali
rsync --archive --chown=ali:ali ~/.ssh /home/ali

O rsync satırı önemlidir. Genel anahtarı elle kopyalarsanız ve dosya izinlerini yanlış ayarlarsanız, SSH sessizce reddeder. Doğru izinler şunlardır:

chmod 700 /home/ali/.ssh
chmod 600 /home/ali/.ssh/authorized_keys
chown -R ali:ali /home/ali/.ssh

Şimdi yeni bir terminal açın ve ssh ali@IP yazın. Bu pencere açık olduğu sürece root penceresini kapatmayın. Bu, tek gerçek sigortanızdır.

Anahtar aktarımı ve şifreyi neden saklıyoruz

Kendi dizüstü bilgisayarınızda:

ssh-keygen -t ed25519 -C "ali@laptop"
ssh-copy-id ali@185.10.20.30

ed25519'u rsa'ya tercih ediyorum: daha kısa anahtar, daha hızlı imza ve OpenSSH sürüm 8 ve üzerinde varsayılan olarak güvenli. ed25519'u tanımayan eski bir istemciniz varsa, ssh-keygen -t rsa -b 4096 yazın ve bitti.

İşte burada hata yapılıyor: birçok kişi aynı gece PasswordAuthentication no ayarını yapıyor ve root şifresini de değiştirmiyor. Üç hafta sonra dizüstü bilgisayar değişiyor, eski anahtar yedek dosyalarla birlikte gidiyor ve rescue dışında hiçbir giriş yolu kalmıyor. Ben şifre kimlik doğrulamasını root olmayan kullanıcı için açık tutuyorum ve yalnızca root'u kapatıyorum. Bedeli, saldırı yüzeyinin biraz büyümesidir; karşılığında fail2ban ve uzun bir şifreyle korunan yasal bir arka kapınız olur.

Root girişini kapatmak: küçük değişiklik, büyük etki

Dağıtımın varsayılan ayarlarına dokunmamak için /etc/ssh/sshd_config.d/99-hardening.conf dosyasını oluşturun:

PermitRootLogin no
PasswordAuthentication yes
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 20

Sonra sözdizimini test etmek için sshd -t ve systemctl reload sshd. Aynı SSH yolundan bağlıyken asla restart yapmayın; reload mevcut bağlantıyı kesmez, restart kesebilir.

MaxAuthTries 3 sayısını hafife almayın. Geçen ay kurduğum sunucuda /var/log/auth.log, 24 saat içinde 41 bin başarısız deneme gösteriyordu; bu ayarla her bağlantı üç denemeden sonra kapanır ve sshd üzerindeki yük belirgin şekilde azalır.

fail2ban ve port, sıklıkla karıştırılan iki karar

SSH portunu 22'den başka bir şeye değiştirmek gerçek güvenlik getirmez; yalnızca log gürültüsünü azaltır. Tarayıcılar sizi rahatsız ediyorsa değiştirin, ama bunun yerine fail2ban'a yatırım yapın:

apt install fail2ban
# /etc/fail2ban/jail.local
[sshd]
enabled = true
maxretry = 4
bantime = 1h

Daha az söylenen bir nokta: SSH portunu değiştirdiyseniz, jail içindeki port değerini de güncellemelisiniz, yoksa fail2ban yanlış portu dinler ve hiç kimseyi banlamaz. Belirtisi de şudur: log başarısız denemelerle dolu ama fail2ban-client status sshd sıfır gösteriyor.

İlk saat içinde tamamlanması gerekenler

  1. Tam güncelleme: apt update && apt full-upgrade -y ve ardından yeni çekirdeğin etkinleşmesi için bir yeniden başlatma.
  2. Güvenlik duvarı: ufw allow 22/tcp && ufw allow 80,443/tcp && ufw enable. Sıra önemlidir; önce enable yaparsanız kendinizi dışarı kilitlersiniz.
  3. Sunucu saati: timedatectl set-timezone Asia/Tehran ki loglar yerel saatle okunsun.
  4. RAM azsa swap ve free -h ile df -h kontrolü.
  5. Ağır bir şey kurmadan önce panelden bir anlık görüntü veya ilk yedek.

Bunlardan sonra sunucu yavaşlarsa, sorun muhtemelen SSH değildir; CPU ve I/O kullanım desenini sunucuda yüksek yükün nedenini teşhis etme bölümünde takip edin.

Dosya aktarımı ve yolun devamı

Dizüstü bilgisayardan proje yüklemek için scp -r ./app ali@IP:/var/www/ yeterlidir, ama birkaç yüz megabayttan büyük her şey için rsync kullanın ki kesinti durumunda kaldığı yerden devam etsin. Bayrakların ayrıntıları scp ve rsync ile dosya aktarımı bölümünde verilmiştir.

Uygulamanız kapsayıcı tabanlıysa, her şeyden önce Docker'ı ayağa kaldırın ki sonradan geçiş daha kolay olsun; VPS'te Docker kurulumu kılavuzu kurulumdan ilk kapsayıcıya kadar her şeyi kapsar. Ve MySQL aynı sunucuda oturuyorsa, o gece anonim kullanıcıyı silin; yöntem MySQL güvenliği bölümündedir.

Küçük ve orta ölçekli sunucular için bu sıralama yeterlidir. İş yükünüz ağırsa ve ayrılmış CPU ile NVMe disk kaynaklarına ihtiyacınız varsa, paylaşımlı bir VPS'te her şeyi elle ayarlamak yerine Linux hosting daha mantıklı bir başlangıç noktasıdır.

Sık sorulan sorular

Root girişini kapattıktan sonra neden artık SSH ile giriş yapamıyorum?

Çünkü root'u kapatmadan önce root olmayan kullanıcıyı test etmediniz veya ~/.ssh izinleri doğru değil. SSH, dizin izni 755 veya anahtar dosyası 644 ise hiçbir açık mesaj vermeden girişi reddeder. Panel konsolundan giriş yapın ve chmod 700 ile chmod 600 uygulayın.

SSH portunu değiştirmek güvenliği artırır mı?

Sanıldığı kadar değil. Tarayıcılar tüm port aralığını tarar ve yalnızca birkaç saniye daha fazla zaman harcar. Gerçek etkisi log gürültüsünün azalmasıdır. Brute-force'u engellemek istiyorsanız, fail2ban ve genel anahtar daha etkilidir.

ed25519 anahtarı mı yoksa RSA mı daha iyi?

OpenSSH sürüm 6.5 ve üzeri olan her sunucu için ed25519 daha iyi bir seçimdir: daha kısa, daha hızlı ve anahtar uzunluğuna bağımlı değil. Yalnızca eski ağ ekipmanları veya çok eski istemcilerle çalışıyorsanız, 4096 bit RSA'yı koruyun.

Özel anahtarı kaybedersem ne olur?

Root olmayan kullanıcının şifresini açık bıraktıysanız, onunla giriş yaparsınız ve yeni bir anahtar oluşturursunuz. Kapalıysa, yalnızca rescue yolu kalır. Bu küçük karar, beş dakika ile bir saatlik kesinti arasındaki farkı yaratır.

Bu sayfa yardımcı oldu mu?