🛡️ 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:
- SSH komutunun kullanımı
- SSH istemci–sunucu mantığı
- Sunucu yapılandırması (
/etc/ssh/sshd_config) - Anahtar oluşturma ve aktarma
- Şifreli girişin kapatılması
⚡ Hızlı Başlangıç: 5 Adımda SSH Bağlantısı
-
Terminali Açın
- Linux/macOS: Terminal uygulamasını başlatın.
- Windows: PowerShell, Git Bash veya WSL kullanın.
-
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
| Hata | Neden | Çözüm |
|---|---|---|
| Connection Refused | sshd servisi çalışmıyor | sudo systemctl status ssh ile kontrol edin. |
| Permission Denied (Publickey) | Yanlış izinler veya eksik anahtar | chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_rsa |
| Host key verification failed | IP değişmiş | ssh-keygen -R sunucu_ip komutunu çalıştırın. |
| SSH Timeout | Ağ veya DNS sorunu | ssh -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)
- SSH neden “Connection Refused” hatası verir?
Sunucuda sshd servisi kapalı olabilir veya port firewall tarafından engellenmiştir.
- “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.
- Birden fazla SSH anahtarıyla nasıl çalışırım?
~/.ssh/config dosyasında her sunucu için farklı IdentityFile tanımlayabilirsiniz.
- “Host key verification failed” hatası ne demektir?
Sunucunun IP’si değişmiş olabilir. ssh-keygen -R sunucu_ip komutu eski kaydı temizler.
- 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!