SSH

Eş anlamlılar: Secure Shell

SSH (Secure Shell), uzak sunuculara güvenli şekilde bağlanmak için kullanılan kriptografik ağ protokolüdür. 22 numaralı TCP portunu kullanır. Komut satırı erişimi, dosya transferi (SFTP), tünel oluşturma ve port yönlendirme sağlar.

SSH Nedir?

SSH (Secure Shell), güvensiz ağlar üzerinden iki bilgisayar arasında güvenli iletişim kurmayı sağlayan kriptografik bir ağ protokolüdür. 1995'te Tatu Ylönen tarafından Telnet'in güvensizliğini çözmek için geliştirildi. TCP 22 numaralı portu kullanır. Linux/Unix sunucularının temel yönetim aracıdır.

SSH Ne İşe Yarar?

  • Uzak komut çalıştırma: Sunucuda terminal erişimi
  • Dosya transferi: SFTP ve SCP protokolleri SSH üzerinde çalışır
  • Tünel oluşturma: Yerel porttan uzak porta güvenli tünel (port forwarding)
  • X11 yönlendirme: GUI uygulamaları uzaktan çalıştırma
  • Git ve CI/CD: Deployment pipeline'larında güvenli iletişim

SSH Kimlik Doğrulama Yöntemleri

  • Şifre: Kullanıcı adı + şifre. En temel, brute force saldırılarına açık.
  • Public Key: Kriptografik key çifti. Çok daha güvenli, şifresiz otomasyona uygun.
  • 2FA: Şifre + TOTP veya FIDO2 key. En güvenli, kurumsal ortamlarda zorunlu.

SSH Key Oluşturma

ssh-keygen -t ed25519 -C "email@example.com"

Ed25519 modern ve hızlıdır; RSA 4096 da kabul edilir. DSA ve RSA-2048 artık güvenli değildir.

SSH Config (~/.ssh/config)

Host meohost
    HostName sunucu.meohost.com
    User admin
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Bu config ile ssh meohost komutu yeterli olur.

SSH Güvenlik En İyi Uygulamaları

  • Port 22'yi değiştir (ör. 2222) — saldırı hacmi düşer
  • Root girişini kapat (PermitRootLogin no)
  • Şifre girişini kapat, yalnızca key (PasswordAuthentication no)
  • Fail2ban veya CSF ile brute force koruması
  • Firewall'da yalnızca güvenilir IP'lerden erişime izin
  • SSH Agent Forwarding'e dikkat — korsan sistemlerde key çalınabilir

SSH Tüneli (Port Forwarding)

Local forward: ssh -L 3306:localhost:3306 user@server — yerel 3306'ya bağlanmak uzak MySQL'e bağlanır

Remote forward: ssh -R 8080:localhost:80 — uzak sunucudaki 8080, yerel 80'e yönlenir

Dynamic forward (SOCKS proxy): ssh -D 1080 user@server — SOCKS proxy oluşturur

SSH Jump Host (Bastion)

Kurumsal ortamlarda iç sunuculara doğrudan erişim kapalıdır; bastion sunucusu üzerinden atlama yapılır:

ssh -J bastion.company.com internal.company.com

SSH İstemcileri

  • OpenSSH: Linux/macOS'ta yerleşik
  • Windows Terminal / PowerShell: Windows 10+
  • PuTTY: Windows, grafiksel
  • Termius, MobaXterm: Gelişmiş özellikler

İlgili Terimler