SSH Nedir? Güvenli Uzak Bağlantı Protokolünün Detaylı Anlatımı

SSH (Secure Shell), uzak sunucuya güvenli ve şifrelenmiş şekilde bağlanmak için kullanılan bir ağ protokolüdür. Verileri Telnet gibi eski yöntemlerden farklı olarak şifreleyerek iletir. Sistem yönetimi, dosya transferi ve kod dağıtımında günümüzün standart yöntemidir.

5 dk okuma
SSH

SSH (Secure Shell), şifrelenmiş ve güvenli bir ağ protokolüdür. Uzak sunucuya komut satırı aracılığıyla bağlanmayı, dosya transferi yapmayı ve ağ trafiğini şifreleyerek korumayı sağlar. İnsan okunaklı adıyla "Güvenli Kabuk" olan SSH, internet üzerinden yapılan tüm iletişimi Telnet, FTP gibi güvensiz eski protokollerden ayıran temel güvenlik aracıdır.

SSH Nasıl Çalışır?

SSH, istemci-sunucu mimarisiyle çalışır. İstemci (bilgisayarınız) SSH sunucusuna (uzak makine) bağlanmak istediğinde, aşağıdaki adımlar gerçekleşir:

  • TCP Bağlantısı: İstemci, varsayılan olarak 22 numaralı porta bağlanır.
  • El Sıkışma (Handshake): İstemci ve sunucu birbirini tanıyarak şifreleme parametrelerini belirler.
  • Kimlik Doğrulama: Kullanıcı adı/şifre veya SSH anahtarı (public/private key) ile kimlik doğrulanır.
  • Şifreli Kanal Oluşturma: Tüm veri iletişimi AES, 3DES gibi simetrik şifreleme algoritmalarıyla korunur.
  • Komut Yürütme: Kimlik doğrulama başarılı olunca, uzak sunucuda komutlar çalıştırılabilir.

SSH'nin Avantajları

  • Güvenlik: Tüm veri şifrelenerek iletilir; ağ trafiği dinleme (eavesdropping) saldırılarına karşı korunur.
  • Kimlik Doğrulama: Şifre yerine RSA/ECDSA anahtarları kullanılabilir, brute-force saldırılarını engeller.
  • Kullanım Kolaylığı: Basit komut satırı arayüzüyle uzak sunucuya adeta lokal gibi erişim sağlar.
  • Taşınabilirlik: Linux, macOS, Windows, mobil cihazlar gibi hemen hemen tüm platformlarda çalışır.
  • Port Yönlendirme: SSH tüneli aracılığıyla güvensiz bağlantılar şifrelenebilir (SSH tunneling).
  • Dosya Transferi: SCP, SFTP protokolleriyle dosyalar güvenli şekilde aktarılır.

SSH'nin Dezavantajları

  • Karmaşıklık: Anahtarlar yönetimi başlangıçta öğrenme eğrisi gerektirir.
  • Bağlantı Başlatma Süresi: Her bağlantıda şifreleme işlemi nedeniyle ufak gecikme oluşur.
  • Port Engelleme: Bazı kurumsal ağlarda 22 portu engellenmiş olabilir.
  • Anahtarları Kaybetme Riski: Private key çalınması veya kaybolması kritiktir.

SSH Nerede Kullanılır?

SSH, modern teknoloji infrastruktürünün hemen hemen her alanında yerleşiktir:

  • Sunucu Yönetimi: VPS, bulut sunucuları (AWS, Azure, DigitalOcean) ile bağlantı.
  • Web Geliştirme: Canlı sunucuya kod dağıtımı ve güncellemeler.
  • Git Depoları: GitHub, GitLab, Gitea gibi platformlarda anahtarlarla kod push/pull işlemleri.
  • Sistem Yönetimi: Logs incelemesi, servislerin denetlenmesi, güncellemeler.
  • Veritabanı Yönetimi: Uzak veritabanlarına güvenli bağlantı.
  • Dosya Yedekleme: SFTP ile güvenli yedekleme işlemleri.
  • IoT Cihazları: Raspberry Pi, mikrodenetleyicilerin uzaktan yönetimi.

SSH Kimlik Doğrulama Yöntemleri

Yöntem Açıklama Güvenlik Seviyesi Kullanım Alanı
Şifre Kimliği Kullanıcı adı ve parola ile giriş Düşük Acil durum, test ortamları
Ortak Anahtarı (Public Key) RSA, ECDSA, Ed25519 anahtarları ile giriş Yüksek Üretim ortamları, CI/CD
Sertifikat Kimliği X.509 sertifikaları ile kimlik doğrulama Çok Yüksek Kurumsal ortamlar, PKI altyapısı
Çok Faktörlü Kimlik (MFA) Anahtarlar + TOTP/SMS doğrulaması Çok Yüksek Kritik sunucular, güvenlik gerektiren sistemler

SSH Anahtarları: Public ve Private Key Nedir?

SSH ortak anahtarı (asymmetric) şifrelemesi kullanır. Bu sistem iki farklı anahtardan oluşur:

  • Public Key (Ortak Anahtar): Sunucuya yerleştirilir. Herhangi biri tarafından bilinebilir, çünkü verileri şifrelemede kullanılır.
  • Private Key (Özel Anahtar): Bilgisayarınızda gizli tutulur. Şifrelenmiş veriyi çözmek için kullanılır. Asla paylaşılmamalıdır.

İstemci bağlandığında, sunucu public key ile bir sınama oluşturur. İstemci bunu private key ile çözerek kimliğini kanıtlar. Böylece parola saldırılarına açık olmayan bir sistem oluşur.

"SSH anahtarı yönetimi, modern siber güvenliğin temel taşlarından biridir. Doğru yapılandırıldığında, saldırganların sunucunuza erişme şansı neredeyse sıfıra iner." — Network Security Best Practices

SSH Protokolünün Tarihçesi

SSH, 1995 yılında Finlandiya'da Tatu Ylönen tarafından geliştirildi. O dönemlerde Telnet ve FTP açık metin ile veri gönderdikleri için siber saldırılara çok açıktı. SSH, bu açığı kapatmak amacıyla tasarlanmıştır:

  • SSH-1 (1995): İlk sürüm, güvenlik açıkları barındırıyordu.
  • SSH-2 (2006): Daha güvenli algoritmaları içeren çağdaş sürüm, bugün hala standard olan RFC 4251.
  • OpenSSH: 1999'de açık kaynaklı olarak geliştirildi, çoğu sunucunun dayanağı.

SSH Ortak Komutlar

SSH ile yapılan yaygın işlemler şunlardır:

  • ssh user@hostname — Uzak sunucuya bağlanma
  • ssh-keygen -t ed25519 — Yeni SSH anahtarı oluşturma
  • ssh-copy-id user@hostname — Public key'i sunucuya yerleştirme
  • scp file.txt user@hostname:/path/ — Dosya transferi
  • sftp user@hostname — İnteraktif dosya transferi
  • ssh -p 2222 user@hostname — Özel portu kullanarak bağlanma
  • ssh -L 3306:localhost:3306 user@hostname — SSH tüneli ile bağlantı yönlendirme

SSH Güvenlik İpuçları

  • Parola Kimliğini Devre Dışı Bırakın: SSH ayarlarında PasswordAuthentication no ile sadece anahtarları etkinleştirin.
  • Varsayılan Portu Değiştirin: 22 yerine farklı bir port kullanarak tarama saldırılarını azaltın.
  • Güçlü Anahtar Kullanın: Ed25519 anahtarlar RSA 4096-bit kadar güvenlidir ancak daha hızlıdır.
  • Root Erişimini Kısıtlayın: PermitRootLogin no ile doğrudan root giriş engelleyin.
  • Firewall Kuralları: SSH portuna sadece gerekli IP adreslerinden erişim izni verin.
  • Anahtarları Yedekleyin: Private key'leriniz kaybolursa sunucuya erişim imkansız olur.
  • Şifre Koruması Ekleyin: SSH anahtarlarını, anahtarı koruma şifresi ile oluşturun.
SSH ile Telnet arasındaki fark nedir?+
SSH tüm veriyi şifreleyerek iletir, Telnet ise açık metinle gönderir. Telnet ağda herkes tarafından dinlenebilir, SSH ise güvenlidir. Bu nedenle SSH, Telnet'in yerini tamamen almıştır.

S harfindeki diğer terimler