‹ Tüm yazılar
Güvenlik·31 Tem 2026·10 dk okuma

SSH Güvenliği: Sunucunuzu Korumanın 10 Yolu

SSH Güvenliği, internete açık bir sunucu yöneten herkesin ciddiye alması gereken ilk savunma katmanlarından biridir. Çünkü çoğu saldırı “çok gelişmiş” yöntemlerle değil; açık root girişi, zayıf parola, varsayılan port ve izlenmeyen loglar gibi ihmal edilen ayarlardan başlar.

SSH Güvenliği: Sunucunuzu Korumanın 10 Yolu

SSH Güvenliği, internete açık bir sunucu yöneten herkesin ciddiye alması gereken ilk savunma katmanlarından biridir. Çünkü çoğu saldırı “çok gelişmiş” yöntemlerle değil; açık root girişi, zayıf parola, varsayılan port ve izlenmeyen loglar gibi ihmal edilen ayarlardan başlar.

SSH nedir

SSH, uzak bir sunucuya güvenli şekilde bağlanmak ve komut çalıştırmak için kullanılan şifreli bir ağ protokolüdür. Sunucu yönetimi, dosya aktarımı, tünelleme ve otomasyon işlemlerinde kullanılır; doğru yapılandırılmazsa saldırganların ilk hedeflerinden biri hâline gelir.

SSH nedir ne işe yarar sorusunun pratik cevabı şudur: Fiziksel olarak yanında olmadığınız Linux/Unix tabanlı bir makineyi terminal üzerinden yönetmenizi sağlar. Web sunucusu yeniden başlatma, log inceleme, deploy alma, servis kontrolü ve güvenlik güncellemeleri genellikle SSH üzerinden yapılır.

SSH nasıl kullanılır?

Temel kullanım şu şekildedir:

ssh kullanici@sunucu_ip_adresi

Özel port kullanıyorsanız:

ssh -p 2222 kullanici@sunucu_ip_adresi

SSH bağlantısı nasıl yapılır sorusunda asıl dikkat edilmesi gereken nokta yalnızca komutu bilmek değildir. Bağlandığınız kullanıcının yetkisi, doğrulama yöntemi, firewall kuralı ve log takibi de bağlantının güvenliğini belirler.

Kullanım Amacı Örnek Komut / Araç Güvenlik Notu
Uzak terminal ssh user@ip Root yerine normal kullanıcı tercih edilmeli
Dosya aktarımı scp, sftp Parola yerine anahtar kullanılmalı
Otomasyon Ansible, deploy scriptleri Yetkiler minimumda tutulmalı
Tünelleme ssh -L Sadece güvenilir kaynaklara açılmalı

SSH Port

SSH port, istemcinin sunucudaki SSH servisine bağlanmak için kullandığı TCP kapısıdır. Varsayılan olarak SSH servisi 22 numaralı portta çalışır; bu nedenle botlar ve otomatik tarama araçları ilk olarak 22 portunu hedefler.

SSH servisi aktifse ve firewall izin veriyorsa dışarıdan bağlantı denenebilir. Bu yüzden “port açık mı?” sorusu kadar “kimler bağlanabiliyor, hangi yöntemle doğrulanıyor ve başarısız denemeler nasıl engelleniyor?” soruları da önemlidir.

Port Durumu Risk Öneri
22 açık, parola aktif Yüksek Anahtar doğrulama + Fail2ban
22 açık, sadece key aktif Orta IP kısıtlama eklenmeli
Farklı port, parola aktif Orta-yüksek Tek başına yeterli değil
Farklı port, key + firewall Düşük Düzenli log kontrolü yapılmalı

SSH Ne Demek

SSH ne demek sorusunun kısa cevabı, “güvenli uzak bağlantı”dır. Teknik olarak SSH; istemci ile sunucu arasında şifreli bir oturum kurar, böylece kullanıcı adı, komutlar ve veri trafiği ağ üzerinde düz metin olarak görünmez.

Burada karışıklık yaratan bazı aramalar da var: “Mobilya SSH ne demek”, “SSH departmanı”, “SSH neresi” gibi ifadeler farklı sektörlerde başka anlamlara gelebilir. Sunucu yönetimi tarafında SSH denildiğinde kastedilen şey Secure Shell protokolüdür.

SSH Açılımı

SSH açılımı “Secure Shell”dir. Türkçeye “Güvenli Kabuk” olarak çevrilebilir; ancak teknik kullanımda genellikle SSH olarak anılır.

SSH yetkisi nedir sorusu da burada önem kazanır. Bir kullanıcıya SSH yetkisi vermek, o kullanıcının sunucuya uzaktan terminal erişimi sağlayabilmesi anlamına gelir. Bu yetki sınırsız verilmemeli; kullanıcı, grup, IP ve komut bazında sınırlandırılmalıdır.

Root ile Doğrudan Girişi Kapatın (PermitRootLogin)

Root ile doğrudan SSH girişi açık olan sistemlerde saldırganın hedefi bellidir: Kullanıcı adını tahmin etmesine gerek kalmaz, doğrudan root parolasını zorlar. Bu yüzden ilk yapılacak ayarlardan biri PermitRootLogin no kullanmaktır.

Dosya:

sudo nano /etc/ssh/sshd_config

Ayar:

PermitRootLogin no

Ardından:

sudo systemctl restart ssh

Root yerine normal bir kullanıcıyla giriş yapıp gerektiğinde sudo kullanmak daha güvenlidir. Böylece hem saldırı yüzeyi daralır hem de kimin hangi komutu çalıştırdığı daha net izlenebilir.

Uyarı: Bu ayarı yapmadan önce sudo yetkili başka bir kullanıcıyla giriş yapabildiğinizden emin olun. Aksi hâlde sunucuya erişiminizi kaybedebilirsiniz.

Şifre Yerine SSH Anahtarı Kullanın (Key Authentication)

SSH anahtarı, parola tabanlı girişe göre daha güvenlidir çünkü brute force ile tahmin edilmesi pratikte mümkün değildir. İyi korunmuş bir private key, güçlü parola ve doğru izinlerle birlikte SSH güvenliğini ciddi biçimde artırır.

Anahtar oluşturma:

ssh-keygen -t ed25519 -C "sunucu-erisim"

Public key’i sunucuya ekleme:

ssh-copy-id kullanici@sunucu_ip

Sonrasında parola ile girişi kapatabilirsiniz:

PasswordAuthentication no
PubkeyAuthentication yes
Yöntem Avantaj Dezavantaj
Parola Kurulumu kolay Brute force’a açık
SSH anahtarı Çok daha güvenli Private key korunmalı
Anahtar + passphrase Güçlü koruma Otomasyonda ek planlama ister
Anahtar + 2FA En güvenli seçeneklerden Kurulum ve yönetim daha dikkat ister

Varsayılan 22 Portunu Değiştirin: Gerçekten İşe Yarıyor mu?

SSH portu değiştirmek tek başına güçlü bir güvenlik önlemi değildir; ancak otomatik bot taramalarını ve kaba kuvvet denemelerinin önemli bir kısmını azaltabilir. Bunu “gizlilikle güvenlik” değil, gürültüyü azaltan yardımcı katman olarak düşünmek daha doğru olur.

Örnek:

Port 2222

Firewall tarafında yeni porta izin vermeden SSH servisini yeniden başlatmayın. Aksi hâlde dışarıdan bağlantı kesilebilir.

İpucu: Port değişikliği yapacaksanız 1024 üzerindeki çakışmayan bir port seçin ve mevcut oturumu kapatmadan yeni bağlantıyı test edin.

Fail2ban ile Brute Force Saldırılarını Engelleyin

Fail2ban, başarısız giriş denemelerini loglardan takip ederek saldırgan IP adreslerini geçici veya kalıcı olarak engelleyebilen pratik bir savunma aracıdır. Özellikle internete açık SSH servislerinde kaba kuvvet denemelerini azaltmak için etkili bir katmandır.

Kurulum:

sudo apt install fail2ban

Basit SSH jail örneği:

[sshd]
enabled = true
port = 2222
maxretry = 5
bantime = 1h
findtime = 10m

Fail2ban olmadan SSH güvenli olabilir mi? Evet, key authentication, firewall, root kapatma ve 2FA ile güvenli bir yapı kurulabilir. Ancak Fail2ban log tabanlı otomatik tepki verdiği için özellikle geniş internete açık sunucularda ek koruma sağlar.

Giriş Yapabilecek Kullanıcıları Sınırlayın (AllowUsers)

SSH erişimi olan kullanıcı sayısı arttıkça risk de artar. AllowUsers ayarıyla yalnızca belirli kullanıcıların SSH üzerinden giriş yapmasına izin vererek gereksiz hesapları bağlantı yüzeyinden çıkarabilirsiniz.

Örnek:

AllowUsers dogus deploy

Bu ayar sayesinde sistemde başka kullanıcılar bulunsa bile SSH üzerinden giriş yapamazlar. Özellikle ekip, müşteri veya proje bazlı kullanıcıların bulunduğu sunucularda bu kontrol oldukça faydalıdır.

SSH Erişimini IP Bazlı Kısıtlayın (Firewall Kuralları)

SSH erişimini yalnızca güvenilir IP adreslerine açmak, saldırı yüzeyini en net daraltan yöntemlerden biridir. Eğer sabit IP’niz varsa veya VPN üzerinden bağlanıyorsanız SSH portunu tüm internete açık bırakmak yerine IP bazlı kısıtlama yapabilirsiniz.

UFW örneği:

sudo ufw allow from 1.2.3.4 to any port 2222 proto tcp
sudo ufw deny 2222/tcp

Router ve firewall erişimi olmayan kullanıcılar için sunucu üzerinde ek önlem almak da mümkündür. Bu noktada Threat.live gibi topluluk temelli tehdit istihbaratı sağlayan sistemler, zararlı olduğu tespit edilen IP adreslerinden gelen istekleri engellemeye yardımcı olabilir.

Threat.live kurulumu için: https://www.threat.live/setup

Threat.live; farklı veri merkezlerindeki gözlem noktalarından gelen trafik sinyallerini analiz ederek botnet, DDoS, brute force ve benzeri kötü niyetli kaynakları tespit etmeye odaklanan bir topluluk projesidir. Router seviyesinde kural yazamayan kullanıcılar için sunucu üzerinde uygulanabilir ek bir savunma katmanı sağlayabilir.

İki Faktörlü Doğrulama (2FA) Ekleyin

SSH için 2FA, yalnızca anahtar veya parola bilen kişinin değil, ikinci bir doğrulama faktörüne sahip kişinin giriş yapmasını sağlar. Özellikle kritik sunucularda anahtar sızıntısı gibi senaryolara karşı ek güvenlik katmanı oluşturur.

Google Authenticator veya PAM tabanlı çözümlerle SSH girişine tek kullanımlık kod eklenebilir. Ancak 2FA kurulumu yapılırken acil erişim planı mutlaka düşünülmelidir.

Güvenlik Katmanı Sağladığı Fayda Dikkat Edilecek Nokta
SSH key Parola tahminini engeller Private key korunmalı
2FA Key sızıntısına karşı ek koruma Yedek kod planı olmalı
IP kısıtlama Erişim yüzeyini daraltır Dinamik IP sorun çıkarabilir
Fail2ban Otomatik saldırıları azaltır Log yolu doğru ayarlanmalı

Boşta Kalan Oturumları Otomatik Kapatın

Açık unutulan SSH oturumları güvenlik ve operasyon açısından risk oluşturur. ClientAliveInterval ve ClientAliveCountMax ayarlarıyla belirli süre yanıt vermeyen oturumları otomatik kapatabilirsiniz.

Örnek:

ClientAliveInterval 300
ClientAliveCountMax 2

Bu ayar yaklaşık 10 dakika boyunca yanıt alınamayan bağlantının kapanmasını sağlar. Ortak ağlarda, VPN bağlantılarında veya uzun süre açık terminal kullanan ekiplerde bu küçük ayar beklenenden daha faydalı olur.

SSH Protokol ve Şifreleme Ayarlarını Sıkılaştırın

Modern OpenSSH sürümleri varsayılan olarak eski protokollere göre oldukça güvenlidir. Yine de eski algoritmaları kapatmak, güncel paket kullanmak ve gereksiz özellikleri devre dışı bırakmak iyi bir sertleştirme adımıdır.

Dikkat edilecekler:

  • OpenSSH paketlerini güncel tutun.
  • SSH Protocol 1 kullanmayın.
  • Gereksiz X11 forwarding özelliğini kapatın.
  • Kullanılmayan TCP forwarding izinlerini sınırlayın.
  • Zayıf algoritmaları eski sistem uyumluluğu gerekmiyorsa devre dışı bırakın.

Örnek:

X11Forwarding no
AllowTcpForwarding no

Her ayarı kapatmak doğru değildir; örneğin deploy süreçlerinde port forwarding gerekebilir. Bu nedenle güvenlik ile operasyon ihtiyacını birlikte değerlendirmek gerekir.

Giriş Denemelerini İzleyin ve Loglayın

SSH bağlantısı hacklenebilir mi sorusunun cevabı, yapılandırmaya ve izlemeye bağlıdır. SSH protokolü doğru kullanıldığında güvenlidir; ancak zayıf parola, sızmış anahtar, açık root girişi veya izlenmeyen loglar saldırının başarı şansını artırır.

Giriş denemelerini görmek için:

sudo journalctl -u ssh

veya dağıtıma göre:

sudo tail -f /var/log/auth.log

Sunucuma kimlerin giriş yaptığını nasıl görürüm?

who
w
last
lastb

Logları yalnızca olay olduktan sonra incelemek yerine düzenli takip etmek gerekir. Özellikle kısa sürede çok sayıda başarısız giriş, farklı ülkelerden ardışık denemeler veya bilinmeyen kullanıcı adları saldırı sinyali olabilir.

Sıkça Sorulan Sorular

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

SSH portunu değiştirmek güvenliği tek başına sağlamaz; ancak otomatik bot taramalarını azaltabilir. Varsayılan 22 portu internete açık olduğunda sürekli deneme alması normaldir. Portu değiştirmek loglardaki gereksiz gürültüyü azaltır, fakat parola girişi açıksa saldırı riski devam eder. En doğru yaklaşım port değişikliğini SSH anahtarı, root girişini kapatma, Fail2ban ve firewall kurallarıyla birlikte kullanmaktır.

SSH anahtarı mı şifre mi daha güvenli?

SSH anahtarı, güçlü bir parola kullanımına göre genellikle daha güvenlidir. Çünkü iyi oluşturulmuş bir private key brute force ile pratikte tahmin edilemez. Ancak anahtarın güvenliği, private key dosyasının korunmasına bağlıdır. Anahtara passphrase eklemek, cihaz ele geçirilse bile ek koruma sağlar. Parola ile giriş mümkünse saldırganlar sürekli deneme yapabilir; bu yüzden kritik sunucularda key authentication tercih edilmelidir.

Fail2ban olmadan SSH güvenli olur mu?

Fail2ban olmadan da güvenli SSH yapılandırması mümkündür; ancak bunun için root girişi kapalı olmalı, parola yerine SSH anahtarı kullanılmalı, IP bazlı firewall kısıtlaması yapılmalı ve loglar düzenli takip edilmelidir. Fail2ban bu yapıya otomatik tepki katmanı ekler. Özellikle internete açık, sabit IP kısıtlaması yapılamayan sunucularda başarısız giriş denemelerini azaltmak için oldukça faydalıdır.

SSH bağlantısı hacklenebilir mi?

SSH protokolünün güncel sürümleri güvenli kabul edilir; saldırılar çoğunlukla protokolün kendisine değil, zayıf yapılandırmaya yönelir. Basit parolalar, sızdırılmış private key dosyaları, root girişinin açık olması veya eski yazılımlar riski artırır. Bu nedenle SSH güvenliği yalnızca bağlantının şifreli olmasına bırakılmamalıdır. Yetki sınırlandırma, anahtar yönetimi, 2FA ve log izleme birlikte uygulanmalıdır.

Sunucuma kimlerin giriş yaptığını nasıl görürüm?

Aktif kullanıcıları görmek için who ve w komutları kullanılabilir. Geçmiş başarılı girişleri incelemek için last, başarısız girişleri görmek için ise lastb komutu yardımcı olur. Debian ve Ubuntu sistemlerde SSH kimlik doğrulama kayıtları çoğunlukla /var/log/auth.log içinde yer alır. Systemd kullanan sistemlerde journalctl -u ssh veya journalctl -u sshd komutlarıyla servis logları incelenebilir.

SSH’yi nasıl etkinleştirebilirim?

Linux sunucularda SSH genellikle OpenSSH Server paketiyle etkinleştirilir. Debian/Ubuntu için sudo apt install openssh-server komutu kullanılabilir. Ardından sudo systemctl enable ssh ve sudo systemctl start ssh ile servis başlatılır. CentOS, AlmaLinux veya Rocky Linux gibi sistemlerde servis adı çoğunlukla sshd olur. Etkinleştirdikten sonra firewall üzerinde ilgili porta izin verildiğinden emin olunmalıdır.

SSH Servis çalışıyor mu nasıl kontrol edilir?

SSH servis durumunu kontrol etmek için systemd tabanlı sistemlerde systemctl status ssh veya systemctl status sshd komutu kullanılır. Servis çalışmıyorsa bağlantı kabul edilmez. Ayrıca ss -tulpen | grep ssh komutuyla hangi portun dinlendiği görülebilir. Eğer servis çalışıyor ama bağlantı kurulamıyorsa firewall, bulut güvenlik grubu, port ayarı veya sshd_config yapılandırması kontrol edilmelidir.

SSH yetkisi nedir?

SSH yetkisi, bir kullanıcının sunucuya uzaktan terminal bağlantısı yapabilmesi anlamına gelir. Bu yetki verildiğinde kullanıcı sistem üzerinde dosya görebilir, komut çalıştırabilir ve sahip olduğu izinler ölçüsünde değişiklik yapabilir. Bu nedenle SSH yetkisi herkese verilmemelidir. Kullanıcı bazlı erişim, AllowUsers, sudo kısıtlamaları, grup politikaları ve log takibiyle birlikte yönetilmelidir.

SSH nasıl kullanılır?

SSH kullanmak için istemci tarafında terminalden ssh kullanici@sunucu_ip komutu çalıştırılır. Farklı port kullanılıyorsa ssh -p port kullanici@sunucu_ip formatı tercih edilir. İlk bağlantıda sunucunun fingerprint bilgisi onaylanır. Güvenli kullanım için parola yerine SSH anahtarı tercih edilmeli, private key dosyası korunmalı ve bilinmeyen sunucuların fingerprint uyarıları dikkate alınmalıdır.

SSH bağlantısı neden reddedilir?

SSH bağlantısının reddedilmesi birkaç nedenden kaynaklanabilir. SSH servisi çalışmıyor olabilir, firewall portu engelliyor olabilir, yanlış port kullanılıyor olabilir veya AllowUsers gibi kısıtlamalar nedeniyle kullanıcıya izin verilmemiş olabilir. Bulut sunucularda güvenlik grubu kuralları da kontrol edilmelidir. Önce servis durumu, sonra port dinleme bilgisi, ardından firewall ve SSH yapılandırması sırayla incelenmelidir.

İlgili İçerikler

  • Linux sunucu güvenliği kontrol listesi
  • UFW firewall kurulumu ve temel kurallar
  • Fail2ban kurulumu ve SSH jail yapılandırması
  • SSH key oluşturma ve güvenli anahtar yönetimi
  • Threat.live ile zararlı IP engelleme kurulumu

SSH erişimi küçük bir ayar gibi görünse de sunucunun kapısıdır. Root girişini kapatmak, SSH anahtarı kullanmak, erişimi IP bazlı sınırlamak ve logları izlemek çoğu saldırı denemesini daha başlamadan etkisiz hâle getirir. Router veya firewall erişiminiz yoksa, sunucu seviyesinde ek koruma için Threat.live kurulumunu inceleyebilirsiniz: https://www.threat.live/setup

Doğuş Şekerci
Doğuş Şekerci
Kurucu · Bulut & Ağ Altyapısı · Teknik Lider
in GH IG

İlginizi Çekebilir

Honeypot Nedir?
Güvenlik

Honeypot Nedir?

Antivirüs Nasıl Çalışır?
Güvenlik

Antivirüs Nasıl Çalışır?

Sosyal Mühendislik Nedir?
Güvenlik

Sosyal Mühendislik Nedir?

Yorumlar (0)

Yorum yap
doğrulama görseli
Henüz yorum yok — ilk yorumu sen yaz.