ssh

  

🔹 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?

bash
ssh-keygen -t rsa -b 4096 -C "seninmailin@example.com"

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:

bash
ssh-copy-id kullanıcı_adı@sunucu_adresi

4. Konfigürasyon Dosyaları:

  • ~/.ssh/config: Kullanıcı seviyesinde bağlantı ayarlarını tutar.

bash
Host sunucum HostName 192.168.1.100 User root IdentityFile ~/.ssh/id_rsa

5. Port Yönlendirme (Tunneling):

SSH, sadece bağlantı kurmakla kalmaz; aynı zamanda veri tünellemesi için de kullanılır.

  • Örneğin:

bash
ssh -L 8080:localhost:80 kullanıcı@sunucu

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:

bash
ssh kullanıcı_adı@sunucu_adresi

Örnek:

bash
ssh root@192.168.1.10

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)