Skip to main content

🛡️ SSH Bağlantısı Kurma Rehberi: Uzak Sunuculara Güvenli Erişim

💡 Bu Rehberde Ne Öğreneceksiniz?

Bu rehberde, SSH (Secure Shell) protokolünü kullanarak uzak Linux sunucularına güvenli şekilde nasıl bağlanacağınızı öğreneceksiniz.
Temel SSH komutları, SSH anahtar oluşturma, sshd_config ayarları ve güvenlik optimizasyonlarını adım adım uygulayacağız.


🧠 Teknik Özet

Ana Teknik Konu: Uzak sunuculara SSH (Secure Shell) protokolüyle güvenli bağlantı kurma
Çözdüğü Problem: Geliştiricilerin, güvenli olmayan ağlarda şifreli bağlantılarla uzaktan komut çalıştırmasını sağlar.
Adımlar:

  1. SSH komutunun kullanımı
  2. SSH istemci–sunucu mantığı
  3. Sunucu yapılandırması (/etc/ssh/sshd_config)
  4. Anahtar oluşturma ve aktarma
  5. Şifreli girişin kapatılması

⚡ Hızlı Başlangıç: 5 Adımda SSH Bağlantısı

  1. Terminali Açın

    • Linux/macOS: Terminal uygulamasını başlatın.
    • Windows: PowerShell, Git Bash veya WSL kullanın.
  2. Bağlantı Komutunu Girin

    ssh kullanici@sunucu_ip

Bu komut, uzak sunucuya bağlantı isteği gönderir.

Güvenlik Onayını Verin İlk bağlantıda sunucu kimlik parmak izini (host fingerprint) onaylayın.

Kimlik Doğrulaması Yapın Parolanızı girin veya SSH anahtarınızı kullanın.

Bağlantıyı Sonlandırın


exit

Oturumdan çıkıp yerel terminale dönersiniz.


📜 Temel SSH Sözdizimi

Aynı Kullanıcı Adıyla Bağlanma


ssh sunucu_ip

Yerel kullanıcı adınız uzak sistemde de geçerliyse kullanıcı adı belirtmeden bağlanabilirsiniz.

Farklı Kullanıcı Adıyla Bağlanma


ssh uzak_kullanici@sunucu_ip

Örnek:

Bu komut, Rabisu Bulut üzerindeki bir sanal sunucuya bağlanır.


🧩 SSH Nasıl Çalışır?

SSH, bir istemci (client) ile uzak sunucudaki sshd servisi arasında güvenli bir bağlantı kurar.

Bileşenler: İstemci (ssh): Terminalde çalıştırdığınız komut.

Sunucu (sshd): Uzak sistemde bağlantıyı dinleyen servis.

Ubuntu’da servisi başlatmak için:


sudo systemctl start ssh

SSH servisinin etkinleştirilmesini sağlar.

💡 Rabisu Konsolu: SSH hatası yaşarsanız, Rabisu’nun tarayıcı tabanlı konsolu acil erişim için güvenli bir alternatiftir.


🔑 SSH Anahtarları ile Güvenli Oturum Açma

Parola yerine anahtar tabanlı kimlik doğrulama, hem daha güvenli hem de daha hızlıdır.

Anahtar Çifti Oluşturma


ssh-keygen -t rsa -b 4096

RSA algoritmasıyla bir özel/genel anahtar çifti oluşturur.

Varsayılan konumlar:


~/.ssh/id_rsa → Özel anahtar
~/.ssh/id_rsa.pub → Genel anahtar

Genel Anahtarı Sunucuya Aktarma


ssh-copy-id kullanici@sunucu_ip

Bu komut genel anahtarı sunucuya ekleyerek parolasız giriş sağlar.

Artık:


ssh kullanici@sunucu_ip

komutuyla doğrudan oturum açabilirsiniz.


🔒 SSH Sunucu Yapılandırmasını Güvenli Hale Getirme

SSH yapılandırma dosyasını açın:


sudo nano /etc/ssh/sshd_config
Önerilen Güvenlik Ayarları
Parametre Varsayılan Önerilen Açıklama
Port 22 2222 vb. Otomatik saldırılardan kaçınmak için farklı port seçin.
PermitRootLogin yes no Root girişi engellenir.
PasswordAuthentication yes no Parola girişini devre dışı bırakır.
X11Forwarding yes Gereksizse no GUI yönlendirmesini kapatır.

Yapılandırmayı kaydedin ve yeniden yükleyin:


sudo systemctl reload ssh

Değişiklikleri etkinleştirir.


🚫 Parolayla Girişi Kapatma (Güvenlik Adımı)

⚠️ Bu adımı yalnızca SSH anahtarınız sunucuda kayıtlıysa uygulayın.


sudo nano /etc/ssh/sshd_config

Satırı bulun:


PasswordAuthentication no

Kaydedin ve servisi yeniden yükleyin:


sudo systemctl reload ssh

Artık yalnızca anahtarla giriş yapılabilir.


⚙️ Gelişmiş SSH Komutları

Farklı Port Üzerinden Bağlantı


ssh -p 2222 kullanici@sunucu_ip

Tek Komut Çalıştırma


ssh kullanici@sunucu_ip 'ls -l /var/www'

Sunucuda komutu çalıştırır, çıktıyı yerel terminale döndürür.


🧰 Yaygın SSH Hataları ve Çözümleri

HataNedenÇözüm
Connection Refusedsshd servisi çalışmıyorsudo systemctl status ssh ile kontrol edin.
Permission Denied (Publickey)Yanlış izinler veya eksik anahtarchmod 700 ~/.ssh && chmod 600 ~/.ssh/id_rsa
Host key verification failedIP değişmişssh-keygen -R sunucu_ip komutunu çalıştırın.
SSH TimeoutAğ veya DNS sorunussh -vvv kullanıcı@sunucu ile hata detaylarını inceleyin.

🧩 Birden Fazla Sunucu İçin SSH Config

Birden çok bağlantıyı kolaylaştırmak için ~/.ssh/config dosyasına ekleyin:


Host rabisu-dev
HostName 192.168.1.10
User trdev
Port 2222
IdentityFile ~/.ssh/rabisu_dev_key

Bağlantı:


ssh rabisu-dev

Artık kısayolla doğrudan bağlanabilirsiniz.


🧱 SSH Güvenlik Kontrol Listesi

✅ Parolayla girişi kapatın (PasswordAuthentication no) ✅ Root oturumlarını devre dışı bırakın (PermitRootLogin no) ✅ SSH portunu değiştirin ✅ Sadece anahtar tabanlı giriş kullanın ✅ Güvenlik duvarıyla erişimi sınırlandırın ✅ Güncellemeleri otomatik hale getirin


❓ Sıkça Sorulan Sorular (SSS)

  1. SSH neden “Connection Refused” hatası verir?

Sunucuda sshd servisi kapalı olabilir veya port firewall tarafından engellenmiştir.

  1. “Permission Denied (Publickey)” hatası nasıl çözülür?

Yanlış dosya izinleri veya eksik anahtar sebep olur. chmod 700 ~/.ssh ve chmod 600 ~/.ssh/id_rsa uygulayın.

  1. Birden fazla SSH anahtarıyla nasıl çalışırım?

~/.ssh/config dosyasında her sunucu için farklı IdentityFile tanımlayabilirsiniz.

  1. “Host key verification failed” hatası ne demektir?

Sunucunun IP’si değişmiş olabilir. ssh-keygen -R sunucu_ip komutu eski kaydı temizler.

  1. SSH güvenli mi?

Evet, şifreli bağlantı sağlar. Şifreli oturumu devre dışı bırakıp anahtar tabanlı giriş kullanmak güvenliği artırır.


🎯 Sonuç

SSH, sistem yöneticileri ve geliştiriciler için uzaktan güvenli erişimin omurgasıdır. Parola yerine SSH anahtarları kullanarak ve temel yapılandırma adımlarını uygulayarak sunucularınızı koruyabilirsiniz.

☁️ Şimdi Rabisu Bulut'ta bir Sanal Sunucu oluşturun ve bu adımları uygulayarak kendi güvenli bağlantınızı kurun!