🔑 SSH ve Uzaktan Bağlantı Rehberi

Hazırlayan: [kazakherif]
Tarih: 2025-07-12
Amaç: SSH ve uzaktan bağlantı süreçlerinde temel kavramların anlaşılması ve sistemli bilgi sunulması.


1️⃣ SSH Nedir?

Açıklama:

SSH (Secure Shell), ağ üzerindeki cihazlara güvenli bir şekilde bağlanmak için kullanılan şifreli protokoldür. Özellikle Linux sunucuların yönetiminde vazgeçilmezdir.

Örnek kullanım alanları:

  • Uzak sunucu yönetimi
  • Dosya transferi
  • Tünelleme işlemleri

2️⃣ SSH Nasıl Çalışır?

Açıklama:

SSH, istemci ve sunucu arasında şifreli bir oturum oluşturur. Bağlantı kurulduğunda kimlik doğrulama gerçekleştirilir.

Ana bileşenler:

  • SSH istemcisi
  • SSH sunucusu (sshd)
  • Şifreleme algoritmaları
  • Kimlik doğrulama yöntemleri

3️⃣ SSH Kurulumu

Açıklama:

SSH istemci ve sunucu yazılımları çoğu sistemde hazır gelir. Kurulumu oldukça basittir.

Linux

sudo apt install openssh-server
sudo systemctl enable ssh

Windows

Windows 10 ve üzeri: “Optional Features” üzerinden yüklenebilir.

Üçüncü parti istemciler: PuTTY, MobaXterm

4️⃣ SSH Anahtar Tabanlı Kimlik Doğrulama

Açıklama:

Anahtar tabanlı kimlik doğrulama, parolaya alternatif olarak daha güvenli bir yöntemdir. SSH istemci, sunucuya açık anahtarı yükler; bağlantı sırasında özel anahtar kullanılır.

Avantajları:

  • Daha güçlü güvenlik
  • Otomatik bağlantı (scriptler için)
  • Parolasız oturum

5️⃣ SSH Dosya Transferi

Açıklama:

SSH, güvenli dosya transferi için de kullanılır. Yaygın araçlar:

SCP (Secure Copy)

  • Tek satırda dosya transferi sağlar
    scp dosya.txt user@192.168.1.10:/hedef/klasor/

    SFTP (Secure Copy)

  • Etkileşimli dosya yönetimi sunar

6️⃣ SSH Tünelleme (Port Forwarding)

### Açıklama:  
SSH tünelleme, güvenli bir tünel üzerinden başka servislere erişim sağlar. Özellikle firewall arkasındaki kaynaklara ulaşmak için kullanılır.

Türleri:
- Local Port Forwarding
- Remote Port Forwarding
- Dynamic Port Forwarding (SOCKS proxy)

Örnek:

ssh -L 8080:localhost:80 user@sunucu

7️⃣ SSH Konfigürasyon Dosyaları

Açıklama:

SSH ayarlarını yönetmek için konfigürasyon dosyaları kullanılır. Bu dosyalar sayesinde bağlantı alışkanlıkları otomatikleştirilebilir ve güvenlik artırılabilir.

İstemci tarafı:

  • ~/.ssh/config
    Bu dosya sayesinde birden fazla sunucuya kolay bağlantı tanımlamaları yapılabilir.

Örnek:

  • Host sunucu1
  • HostName 192.168.1.10
  • User
  • Port 2222
  • IdentityFile ~/.ssh/id_rsa

Sunucu tarafı:

  • /etc/ssh/sshd_config
    SSH sunucusunun davranışlarını belirler. Root erişimi, port, parola kullanımı gibi güvenlik seçenekleri burada yapılandırılır.

Örnek:

PermitRootLogin no
PasswordAuthentication no
Port 2222
AllowUsers admin

Ayar değişikliklerinden sonra SSH servisi yeniden başlatılmalıdır:

sudo systemctl restart ssh

8️⃣ SSH Güvenlik İpuçları

Açıklama:

SSH servisini güvenli tutmak için bazı önemli ipuçları:

  • Root oturumunu devre dışı bırakmak (PermitRootLogin no)
  • Güçlü parolalar veya anahtar tabanlı kimlik doğrulama kullanmak
  • Varsayılan portu değiştirmek (örneğin 22 yerine 2222)
  • Fail2ban gibi araçlarla brute force saldırılarını engellemek
  • Sadece gerekli kullanıcıların erişimine izin vermek (AllowUsers veya AllowGroups kullanarak)
  • SSH protokol sürümünü yalnızca v2 olarak ayarlamak (Protocol 2)
  • Düzenli olarak SSH loglarını izlemek ve analiz etmek

Bu önlemler, uzaktan bağlantılarınızın güvenliğini artırır ve kötü niyetli erişimleri engellemeye yardımcı olur.


9️⃣ SSH Proxy Kullanımı

Açıklama:

SSH, proxy sunucusu üzerinden bağlantı kurulmasını destekler. Özellikle erişimi sınırlı ağlarda veya firewall arkasındaki sistemlere erişim için kullanışlıdır.

Örnek kullanım:

ssh -o ProxyCommand="ssh proxyuser@proxyhost nc hedefhost 22" hedefuser@hedefhost

Avantajları:

  • Ağ erişimi olmayan cihazlara dolaylı bağlantı sağlar.
  • Güvenli geçiş tüneli oluşturur.
  • Karmaşık ağ yapılarını aşmaya yardımcı olur.

🔟 SSH Bağlantı Sorun Giderme

Açıklama:

SSH bağlantısında yaşanabilecek sorunları çözmek için bazı temel kontroller ve yöntemler vardır.

  • Port 22 veya kullanılan alternatif portun açık ve erişilebilir olduğundan emin olun.
  • Firewall veya güvenlik duvarı ayarlarının SSH trafiğini engellemediğini kontrol edin.
  • SSH servisinin (sshd) sunucuda çalıştığından emin olun.
  • Kullanıcı izinleri ve SSH dizinindeki dosya yetkilerini doğru ayarlayın.
  • Ayrıntılı hata mesajı almak için bağlantıyı -vvv parametresiyle çalıştırın:
    ssh -vvv user@host
  • SSH anahtarlarının doğru yüklendiğinden ve yetkilendirildiğinden emin olun.
  • Log dosyalarını inceleyin (/var/log/auth.log, /var/log/secure).