🔹 SSH’in Tarihi
1995’te Finlandiyalı bir araştırmacı olan Tatu Ylönen, ağ üzerinden parola ve veri gönderiminin açık (şifrelenmemiş) yapıldığı Telnet gibi protokollerin yarattığı güvenlik açığını gördü.
Bir arkadaşının şifresinin ağ üzerinden “sniffing” (dinleme) yoluyla çalınması üzerine, güvenli bir alternatif geliştirme kararı aldı.
Bunun üzerine ilk SSH sürümünü (SSH-1) geliştirdi ve üniversite ortamında hızla yayıldı.
Daha sonra Ylönen, SSH Communications Security adlı şirketi kurarak protokolü ticari hale getirdi.
SSH-1’deki bazı güvenlik açıkları nedeniyle, SSH-2 sürümü 2006’da standart haline geldi (RFC 4251 ile).
🔹 SSH Mimarisi – Teknik Derinlik
1. Kimlik Doğrulama Yöntemleri:
Parola tabanlı: Kullanıcı adı ve şifre ile giriş yapılır. En basit ve en az güvenli yöntemdir.
Anahtar tabanlı (Key-based): Daha güvenli. SSH anahtarı ile parola yerine özel bir dosya ile doğrulama yapılır.
2. Anahtar Çifti Nasıl Oluşturulur?
Bu komut:
~/.ssh/id_rsa
: Özel anahtar (gizli tutulmalı)~/.ssh/id_rsa.pub
: Açık anahtar (sunucuya kopyalanır)
3. Açık Anahtarı Sunucuya Kopyalamak:
4. Konfigürasyon Dosyaları:
~/.ssh/config
: Kullanıcı seviyesinde bağlantı ayarlarını tutar.
5. Port Yönlendirme (Tunneling):
SSH, sadece bağlantı kurmakla kalmaz; aynı zamanda veri tünellemesi için de kullanılır.
Örneğin:
Bu komut, yerel bilgisayarındaki 8080 portunu sunucudaki 80 portuna yönlendirir.
🔹 SSH’in Kullanım Alanları (İleri Düzey):
GitHub, GitLab gibi servislerde SSH ile kimlik doğrulama
Ansible ve benzeri otomasyon araçlarında uzaktan komut çalıştırma
Ters tünelleme: Sunucu dış dünyaya kapalı olsa bile, içerden dışa bir bağlantı kurmak
Port knocking, fail2ban gibi araçlarla brute-force saldırılardan korunma
SSH sadece bir bağlantı protokolü değil, aynı zamanda siber güvenlikte temel bir silahtır. Özellikle saldırı analizi, adli bilişim (forensics) ve sızma testlerinde bilmeden ilerleyemezsin.
***
SSH (Secure Shell), bilgisayarlar arasında güvenli bir şekilde uzaktan bağlantı kurmayı sağlayan bir ağ protokolüdür. Genellikle bir sistem yöneticisinin veya geliştiricinin, uzaktaki bir sunucuyu komut satırı üzerinden kontrol edebilmesi için kullanılır.
Temel Özellikleri:
Şifreli iletişim: Tüm veri transferi, kimlik doğrulama ve komutlar uçtan uca şifrelenir.
Uzak bağlantı: Bir sunucuya veya cihaza, ağ üzerinden erişim sağlar.
Kimlik doğrulama: Şifre ya da SSH anahtarlarıyla giriş yapılabilir.
Port yönlendirme ve tünelleme gibi gelişmiş güvenlik özellikleri sunar.
Tipik SSH Komutu:
Örnek:
SSH Nerelerde Kullanılır?
Sunucu yönetimi (Linux/Unix sistemler)
Git gibi araçlarda kimlik doğrulama
Ters tünelleme ve güvenli veri aktarımı
Ağ güvenlik testleri (örneğin, sızma testleri sırasında)