Sıfırdan SSH ile Sunucuya Bağlanma Rehberi (2026)
Bu rehberde SSH ile sunucuya sıfırdan bağlanmayı; kullanıcı/port, parola yerine key, bastion ve güvenlik adımlarını adım adım öğrenin.
SSH (Secure Shell), bir sunucuyu grafik arayüz olmadan uzaktan yönetmenin en pratik yoludur. Doğru kurulum yapılmadığında bağlantı hataları, kilitlenmiş kullanıcılar veya güvenlik açıkları görülür. Bu rehberde, sıfırdan başlayarak bir VDS/VPS ya da dedicated sunucuya SSH ile nasıl bağlanacağınızı; SSH anahtar (key) mantığını, yaygın hata ayıklama adımlarını ve güvenlikte yapılması gerekenleri net biçimde anlatıyorum.
Önce şunu hedefleyelim: Hedef sistem Linux ise, siz kendi bilgisayarınızdan tek bir terminal komutuyla sunucuya girebilecek hale gelin. Ardından parolanın yerine SSH key kullanarak oturumu daha güvenli hale getirin.
SSH bağlantısı için gerekenler
SSH ile bağlanabilmek için elinizde şu bilgiler olmalı:
- Sunucu IP adresi (genelde IPv4). Bazı sağlayıcılarda IPv6 da verilir.
- Kullanıcı adı (çoğu Linux sistemde sıklıkla
rootdeğil,ubuntu,debian,centosgibi farklı olur; sağlayıcı dokümana göre kesinleştirin). - SSH portu (standart 22; bazı kurulumlarda farklı port verilir).
- Kimlik doğrulama yöntemi: parola veya SSH key (public/private key).
- (Varsa) bastion/jump host bilgisi: Sunucuya doğrudan erişim yoksa önce ara sunucuya bağlanmanız gerekir.
Sağlayıcı size ne vermelidir?
NetKıyas’taki karşılaştırmalarda bile bu kritik; çünkü farklı firmalar farklı varsayımlar yapabiliyor. Sağlayıcınızdan genellikle şu şekilde bilgi görürsünüz:
- Host/IP: örn.
185.xxx.xxx.xxx - Username: örn.
rootveyaubuntu - Port: örn.
22 - Auth: parola veya “SSH public key” ekleme ekranı
Eğer “parola ile giriş kapalı” ya da “key zorunlu” gibi bir ifade varsa, parola denemeye vakit harcamayın; key akışını uygulayın.
1. Linux/macOS’ta SSH ile bağlantı kurma (terminal)
Linux veya macOS kullanıyorsanız, yerleşik ssh komutu ile başlayın.
Temel bağlantı komutu
Örnek bir yapı:
ssh -p 22 kullanici@sunucu-ip
Örnek:
ssh -p 22 [email protected]
Port standartsa -p 22 kısmını atlayabilirsiniz:
İlk bağlantıda parmak izi (fingerprint)
İlk defa bağlanırken sistem, sunucunun kimliğini doğrulamanız için bir uyarı verir. Ekranda görünen parmak izi (fingerprint) ile sağlayıcının panelinde/kurulum notlarında paylaştığı değer uyuşuyorsa devam edin. Uyuşmuyorsa devam etmeyin; yanlış IP veya güvenlik riski olabilir.
2. Windows’ta SSH ile bağlantı kurma
Windows 10/11’de iki pratik yol var:
Yöntem A: PowerShell veya Windows Terminal
PowerShell içinde aynı komutlar çalışır:
ssh -p 22 kullanici@sunucu-ip
Yöntem B: PuTTY
PuTTY, özellikle sıfırdan başlayanlarda arayüzle ilerlemek isteyenler için tercih edilebilir. Burada dikkat edilmesi gerekenler:
- Host Name: sunucu IP
- Port: SSH portu
- Connection type: SSH
- Saved session: kaydedilebilir
Ancak key tabanlı girişte PuTTY’nin key dönüşümü (PPK) adımları gerekebilir. Hız için PowerShell/Terminal genelde daha az adım içerir.
3. Parola yerine SSH key kullanma (önerilen yöntem)
Parola ile SSH, doğru uzun parolalar ve ek önlemler olmadan daha risklidir. SSH key ile giriş yapmak hem daha güvenlidir hem de otomasyona uygundur.
Key mantığı nasıl çalışır?
- Siz bilgisayarınızda bir private key (özel anahtar) tutarsınız.
- Sunucuda ise public key (açık anahtar) yetkilendirilir.
- Bağlantıda parola yerine bu anahtarlar doğrulanır.
Linux/macOS’ta key üretme
Terminalde:
ssh-keygen -t ed25519 -a 100
Önerilen eklemeler: - Varsayılan dosya konumunu kabul edin. - Parola (passphrase) belirlemek, private key ele geçirilse bile ek güvenlik sağlar. Bu adımı özellikle üretimde öneririm.
Komut sonrası sizde iki dosya oluşur:
- ~/.ssh/id_ed25519 (private)
- ~/.ssh/id_ed25519.pub (public)
Windows’ta key üretme
Windows da aynı komutu PowerShell/Terminal ile çalıştırabilir:
ssh-keygen -t ed25519 -a 100
Yine id_ed25519 ve id_ed25519.pub dosyalarını oluşturur.
Public key’i sunucuya tanımlama
İki yaygın yaklaşım var:
1) Sağlayıcı panelinden “SSH public key ekle”
- Çoğu sağlayıcı, panelinde public key alanı sunar.
- id_ed25519.pub dosyanızın içeriğini (tam metin) buraya yapıştırın.
2) Sunucuya ilk kez parola ile girip authorized_keys düzenlemek
- Sunucuya parola ile giriş izni varsa, girdikten sonra yetkilendirme yapılır.
- Bu adımda dosya izinlerini doğru vermek gerekir; aksi halde key kabul edilmez.
Netlik için en doğru yöntem sağlayıcının panel akışıdır; çünkü izin/konum hatası riski azalır.
Key ile bağlanma komutu
Key dosyanız varsayılan konumdaysa genelde otomatik kullanılır. Farklı konum kullanıyorsanız:
ssh -i /yol/anahtar_ed25519 kullanici@sunucu-ip
Örnek:
ssh -i ~/.ssh/id_ed25519 [email protected]
4. İlk girişte kontrol: doğru kullanıcı, doğru sistem ve zaman
İlk kez bağlandıktan sonra şu kontrolleri 2-3 dakika içinde yapın.
Kullanıcı ve hostname
whoamihostname
İşletim sistemi
cat /etc/os-release
Zaman (zaman damgaları doğru mu?)
date
Bu adımlar, ileride görülecek log/sertifika hatalarının “sebebi”ni erken yakalamaya yardım eder.
5. SSH erişimi neden başarısız olur? Hızlı hata ayıklama
Aşağıdaki hatalar, sıfırdan kurulumda en sık görülenlerdir. Her birinin “en kısa doğru” çözümü vardır.
“Connection timed out”
Bu hata genellikle şunları gösterir: - Yanlış IP - Yanlış port - Sağlayıcı güvenlik duvarı (firewall) / cloud firewall portu kapalı
Kontrol listesi: - Port gerçekten doğru mu? (22 değilse doğru değeri kullanın) - IP doğru mu? (NAT/ek IP karışıklığı varsa) - Sağlayıcı panelinde SSH portu açık mı?
“Connection refused”
- Sunucuya ulaşıyorsunuz ama o portta servis dinlemiyor.
- sshd servisi kapalı olabilir ya da yanlış portta olabilir.
- Sunucuda sshd yapılandırması değişmiştir.
“Permission denied (publickey)”
- Yanlış kullanıcı adı
- Yanlış public key yetkisi
- Private key dosya izinleri hatalı
İzin kontrolü (Linux/macOS):
- chmod 700 ~/.ssh
- chmod 600 ~/.ssh/id_ed25519
“Host key verification failed”
Bu uyarı, sunucu parmak izinin değiştiğini anlatır. Sebep iki şey olabilir: - Sunucu yeniden kuruldu, parmak izi değişti - Yanlış IP’ye bağlanıyorsunuz
Çözüm: Sunucunun gerçekten doğru sistem olduğundan emin olduktan sonra yerel known_hosts kaydını güncelleyin.
6. Güvenlik için temel SSH sertleştirme (sıfırdan doğru set)
Bağlantı sağlandıktan sonra hedefiniz şudur: Parola ile brute-force denemelerine kapalı bir erişim modeli kurmak ve yalnızca gerekli kimlikleri açmak.
Aşağıdaki adımlar genel Linux kılavuzudur. Dağıtıma göre dosya yolları değişebilir; ama mantık aynıdır.
Adım 1: Root direkt giriş yerine normal kullanıcı
Mümkünse root ile direkt login yerine normal kullanıcı oluşturun ve yetkili işlemler için sudo kullanın. Bu, erişim yüzeyini küçültür.
Adım 2: Parola tabanlı SSH’yi kapatın
sshd_config içinde:
- PasswordAuthentication no
Bu ayar, parolayı tamamen devre dışı bırakır. Ancak key girişiniz çalışmıyorsa bunu yapmayın; aksi halde kendinizi kilitleme riski oluşur.
Adım 3: Key bazlı erişimi zorunlu kılın
PubkeyAuthentication yes
Ayrıca sadece belirli kullanıcıları/dizinleri yetkilendirmek için sağlayıcı dokümanıyla uyumlu şekilde ilerleyin.
Adım 4: Kullanılan kullanıcı için doğru izinler
~/.ssh klasörü ve authorized_keys dosyası izinleri hatalıysa key çalışmaz.
Tipik kontrol:
- ~/.ssh klasörü: 700
- authorized_keys dosyası: 600
Adım 5: Fail2ban ile kilitleme (ek katman)
SSH brute-force denemelerinde otomatik engelleme için Fail2ban ek katman sağlar. NetKıyas’ta ayrıca “Fail2ban Kurulumu” rehberleri bulunur; burada mantığı söyleyelim: Belirli deneme sayısını aşan IP’ler geçici olarak bloke edilir.
Adım 6: Port değişikliği tek başına güvenlik değildir
SSH portunu 22 yerine başka bir değere almak gürültüyü azaltır; fakat tek başına güvenlik değildir. Gerçek koruma: key zorunluluğu, parola kapatma, fail2ban, firewall kuralları ve doğru loglama.
7. Bastion/Jumphost ile erişim: iki adımlı SSH
Bazı senaryolarda sunucu doğrudan internete açık değildir. Bu durumda önce bastion (jump host) üzerinden ikinci bağlantı yapılır.
Genel akış: - 1) Bastion’a bağlanın - 2) Bastion üzerinden hedefe SSH yapın
Terminalde doğrudan komut şu mantığı takip eder:
- Bastion bağlantısı ile ssh içinde hedefe tünel
Bu bölüm sağlayıcı topolojisine göre değiştiği için en doğru yöntem için bastion IP/port ve izinleri sağlayıcıdan netleştirmektir. Eğer JumpHost bilgisi varsa, panel veya dokümanda “ProxyJump” gibi bir öneri bulunur; komut örneği de ona göre şekillenir.
8. SSH ile çalışırken log ve durum takibi
Bağlandıktan sonra “sorun çıkınca nereden bakarım?” sorusunun yanıtı hazır olmalı.
SSH logları nerde olur?
Dağıtıma göre değişir ama tipik olarak:
- journalctl -u ssh
- veya journalctl -u sshd
Üretimde pratik yaklaşım:
- Son denemeleri gör: journalctl -xe yerine doğrudan sshd unit logları
Sunucu performansı ile bağlantı sorunu ilişkisi
CPU aşırı yükteyse, SSH oturumları gecikebilir. Performans yaklaşımı için şu kontrolleri yapın:
- uptime
- top veya htop
- Disk doluluğu: df -h
SSH bir “ağ” sorunu gibi görünse bile bazen “sistem” sorunudur.
Karşılaştırma: Parola mı key mi? Karar tablosu
Aşağıdaki tablo, sıfırdan başlayan biri için net bir karar çerçevesi sağlar.
| Kriter | Parola ile SSH | SSH key ile SSH |
|---|---|---|
| Kurulum süresi | Hızlı başlar | İlk kurulum daha adımlı |
| Brute-force riski | Yüksek (ek önlem yoksa) | Düşük (doğru yapılandırmada) |
| Otomasyon | Zor ve riskli | Kolay ve güvenli |
| Kilitlenme riski | Düşük (doğru parola varsa) | Orta (key çalışmazsa kilitlenme olur) |
| Yönetilebilirlik | Parola paylaşımı/rotasyonu zor | Key rotasyonu yapılabilir |
| En iyi uygulama | Tek seferlik giriş/kurulum | Üretimde standart |
Net öneri: İlk giriş için gerekirse parola ile başlayın, ardından key ile kalıcı geçiş yapın.
Sonuç: 30 dakikada doğru SSH kurulumunu tamamlayın
Sıfırdan SSH kurulumunda kritik başarı ölçütü “bağlantı kurdum”dan ibaret değildir: Doğru kullanıcıyı seçmek, port bilgisini doğru kullanmak, parmak izini güvenli doğrulamak ve SSH key ile kalıcı erişim sağlamak gerekir. Ayrıca bağlantı hatalarında “timeout mu refused mı” ayrımını yaparsanız çözüm süresi ciddi şekilde kısalır.
Aksiyon planı: Önce terminalden temel ssh komutunu çalıştırın, ardından ssh-keygen ile key üretin ve public key’i sunucuya tanımlayın. Son aşamada parola girişini kapatmadan önce key ile girişin kesin çalıştığını doğrulayın; böylece hem erişimi kalıcı hem de güvenliği yüksek hale getirmiş olursunuz.
Hosting karşılaştırması yapmaya hazır mısın?
100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.
Hosting Karşılaştır →İlgili Yazılar
Snapshot yedekleme gerçek backup yerine geçer mi?
Snapshot (anlık görüntü) hızlı geri dönüş sağlar. Ancak gerçek backup değildir. Doğru strateji, süre/erişim ve test kriterlerini birlikte ele alır.
Paylaşımlı Hosting Yeterli mi? Ne Zaman Değiştirmeli?
Paylaşımlı hosting ne zaman yeterli olur, ne zaman VDS/VPS gerekir? Trafik, kaynak, hız, güvenlik ve maliyet eşiklerini net şekilde öğren.
Sunucu Loglarından Anormallik Tespiti: Net İzleme Rehberi
Sunucu loglarını izleyerek CPU, servis hatası ve güvenlik sinyallerini kaçırmadan anormallik tespit edin. Adım adım filtreler ve kontrol listesi.
WAF nedir? Web siteni korumak için net işlev ve kullanım rehberi
WAF (Web Application Firewall) ne yapar, hangi saldırıları engeller ve doğru kurulum/konfigürasyon için net kontrol listesi.