Sunucunuzu yönetmek için her seferinde kontrol paneline mi giriyorsunuz? Belirli işlemler için komut satırına ihtiyaç duyduğunuzda ne yapıyorsunuz? SSH, sunucunuza dünyanın herhangi bir noktasından güvenli ve şifreli bir terminal bağlantısı kurmanın standart yolu. Bir kez öğrendiğinizde pek çok işlemi çok daha hızlı ve doğrudan yapabileceğinizi göreceksiniz.
SSH (Secure Shell), ağ üzerinden iki bilgisayar arasında şifreli iletişim kuran bir protokoldür. 1990'larda güvensiz Telnet protokolünün yerini almak için geliştirildi ve bugün sunucu yönetiminin fiili standardı haline geldi.
SSH bağlantısı kurduğunuzda klavyenizden yazdığınız her karakter sunucuya şifreli olarak iletilir, sunucunun yanıtları da aynı şekilde şifreli gelir. Ortadaki biri trafiği dinlese bile anlamsız veriden başka bir şey göremez.
SSH yalnızca terminal erişiminden ibaret değil. Doğru araçlarla SSH üzerinden dosya transferi (SCP ve SFTP), port yönlendirme ve tünel oluşturma, uzak sistemlerde betik çalıştırma ve otomatik yedekleme gibi işlemler de mümkün. Geliştiriciler SSH'ı Git sunucularına bağlanmak, CI/CD pipeline'larını tetiklemek ve production ortamına deployment yapmak için de kullanıyor.
Linux ve macOS sistemlerde SSH istemcisi hazır yüklü geliyor. Windows'ta ise Windows 10 ve sonrasında yerleşik OpenSSH istemcisi mevcut; daha eski sistemler için PuTTY yaygın tercih.
Temel bağlantı komutu şu şekilde: ssh kullanici@sunucu-ip-adresi
İlk bağlantıda sunucu parmak izini (fingerprint) onaylamanız istenir. Bu, bağlandığınız sunucunun gerçekten hedeflediğiniz sunucu olduğunu doğrulayan bir güvenlik adımı. Sunucuyu tanıyor ve güveniyorsanız onaylayın; bilmediğiniz bir parmak izi görürseniz duraksayın.
Varsayılan SSH portu 22. Hosting sağlayıcınız farklı bir port kullanıyorsa bağlantı komutuna -p port_numarasi parametresini ekleyin.
Parola ile SSH girişi pratik görünse de brute force saldırılarına açık. Her gün milyonlarca otomatik bot, bilinen kullanıcı adı ve parola kombinasyonlarını deneyerek SSH portuna saldırıyor. SSH anahtar çifti bu riski ortadan kaldırıyor.
Anahtar çifti, matematiksel olarak birbirine bağlı iki parçadan oluşur: gizli anahtarınız (private key) bilgisayarınızda kalır, hiçbir zaman paylaşılmaz. Açık anahtarınız (public key) sunucuya yüklenir. Bağlantı kurulurken sunucu bu iki anahtarın eşleşip eşleşmediğini doğrular — parola girmeden, güvenli biçimde.
Anahtar oluşturmak için terminalden ssh-keygen -t ed25519 komutunu çalıştırın. Ed25519 algoritması günümüzde en güçlü ve en hızlı seçenek. Üretilen açık anahtarı sunucunuzdaki ~/.ssh/authorized_keys dosyasına ekleyin. Bunu tamamladıktan sonra parola girişini tamamen devre dışı bırakabilirsiniz.
Varsayılan portu değiştirin. SSH'ın 22 numaralı portta çalıştığını bilen botlar bu portu sürekli tarar. Portu 2222 veya 22222 gibi rastgele bir numaraya taşımak bu otomatik saldırıların büyük çoğunluğunu etkisiz kılıyor. Gerçek anlamda güvenlik sağlamasa da gürültüyü önemli ölçüde azaltıyor.
Root girişini engelleyin. SSH yapılandırma dosyasında PermitRootLogin no satırı, saldırganların doğrudan root hesabına erişmesini engelliyor. Normal bir kullanıcıyla giriş yapıp sudo ile yetki yükseltmek çok daha güvenli bir pratik.
Parola girişini kapatın. Anahtar tabanlı kimlik doğrulamayı aktif ettikten sonra PasswordAuthentication no ayarıyla parola girişini tamamen devre dışı bırakın. Bu noktadan sonra anahtarı olmayan hiç kimse sisteme giremez.
Fail2Ban kurun. Art arda başarısız giriş denemelerini otomatik olarak tespit edip ilgili IP adresini geçici olarak engelleyen bu araç, kaba kuvvet saldırılarına karşı pratik bir kalkan oluşturur.
Farklı sunuculara sık bağlanıyorsanız her seferinde IP adresi ve parametre yazmak yorucu. ~/.ssh/config dosyasına bağlantı profillerini kaydedebilirsiniz. Her profil için sunucu takma adı, hostname, kullanıcı adı, port ve kullanılacak anahtar dosyasını belirtin.
Bu yapılandırma tamamlandıktan sonra uzun komutlar yerine yalnızca ssh sunucu-takinim yazarak bağlanabilirsiniz. Birden fazla sunucu yöneten geliştiriciler için bu alışkanlık günde onlarca dakika tasarruf sağlıyor.
Yeni bir VDS veya dedicated sunucu aldığınızda SSH güvenliğini ilk saatte yapılandırmak, sonradan yaşanabilecek sorunların büyük bölümünü önlüyor. Sırasıyla: sistem güncellemelerini yapın, sudo yetkili yeni bir kullanıcı oluşturun, SSH anahtarınızı yükleyin, root girişini ve parola kimlik doğrulamasını kapatın, Fail2Ban'ı kurun ve güvenlik duvarını yapılandırın. Bu adımları tamamladıktan sonra sunucunuz temel saldırı vektörlerine karşı ciddi ölçüde sertleşmiş olur.