Buyukweb
Linux Sunucuya SSH Bağlantısı Nasıl Yapılır? VDS Rehberi

Linux Sunucuya SSH Bağlantısı Nasıl Yapılır? VDS Rehberi

Linux sunuculara SSH ile güvenli uzaktan bağlantı kurmak için PuTTY ve Terminal kullanımını adım adım anlatan kapsamlı rehber.

Büyükweb Editör EkibiHosting, Sunucu ve Sistem Yönetimi Editörü12 dakika okuma

Linux Sunucuya SSH Bağlantısı Nasıl Yapılır? VDS İlk Gün Rehberi (2026)

VDS'inizi satın aldınız, sipariş özetinde "IP: 185.123.45.67, root parolası: Aa1!XyzPq..." yazıyor. Şimdi ne yapacaksınız? Eğer cPanel paylaşımlı hosting'den geçtiyseniz, bu büyük olasılıkla SSH ile ilk karşılaşmanız. Bu rehber tam o anı çözmek için yazıldı: protokolün arka planında ne döndüğünden Windows/macOS/Linux'tan ilk bağlantıya, anahtar tabanlı kimlik doğrulamadan port forward ve troubleshoot'a kadar bağlantı kurma sürecinin her adımı.

Not: Bu rehber bağlantı kurmaya odaklanır (istemci kurulumu, anahtar üretimi, sshd_config sıkılaştırma, hata çözümü). Bağlandıktan sonra terminal komutları (ls, grep, sed, systemctl, ufw vb.) için ayrı rehberimiz: Linux SSH Terminal Komutları.

Buyukweb perspektifi: E5-V4 VDS paketlerimiz (₺250/ay başlangıç) tam root SSH erişimiyle gelir. AlmaLinux 9, Ubuntu 22.04, Debian 12 ve RHEL 9 imajlarımızda OpenSSH 8.x+ default kuruludur; siparişin üstünden 5-10 dakika sonra IP'niz ssh istemcisini kabul eder. Unmanaged not: VDS'lerimiz unmanaged'dır — bu rehberin sıkılaştırma adımları (parolayı kapat, root login disable, fail2ban) ilk gün ödevinizdir, çünkü 22 portuna açılan dünya genelinden brute-force saatte 200+ deneme atar.


SSH Protokolü Arka Planda Ne Yapar?

ssh [email protected] komutuna Enter'a vurduğunuzda perde arkasında üç katman çalışır: Transport (TCP 22 üzerinde Diffie-Hellman ile şifreli kanal, AES-256-GCM/ChaCha20-Poly1305), Authentication (parola, public key veya keyboard-interactive ile sizi sunucuya kanıtlama) ve Connection (aynı kanal üstünde shell, port forward, SFTP — multiplexed). Asimetrik kriptografi (RSA/Ed25519) ile session anahtarı karşılıklı türetilir; sonra trafik simetrik şifrelemeyle akar — asimetrik aşama yalnızca handshake için, çünkü simetrik şifreler 100x+ hızlıdır.

Hostkey nedir? Sunucu ilk kurulduğunda /etc/ssh/ssh_host_ed25519_key üretir. İlk bağlantıda bu anahtarın fingerprint'i size gösterilir; "yes" derseniz ~/.ssh/known_hosts dosyanıza yazılır. Sonraki bağlantılarda istemci o fingerprint ile gelen sunucu anahtarını karşılaştırır — eşleşmezse bağlantı durur. Bu, man-in-the-middle (MITM) saldırılarına karşı tek savunmanızdır.

Sipariş onay e-postanızda dört bilgi olmalı: IP/hostname (185.123.45.67), port (default 22), kullanıcı (ilk teslimde root), kimlik kanıtı (ilk teslimde parola; ilk fırsatta SSH key'e geçilmeli).


Windows'tan SSH Bağlantısı: 3 Yol

1) Windows OpenSSH (Built-in, 2026 önerisi)

Windows 10 1809+ ve Windows 11'de OpenSSH istemcisi default kuruludur. PowerShell veya CMD açın:

ssh [email protected]

Farklı port:

ssh -p 2222 [email protected]

Anahtar dosyasıyla:

ssh -i "$env:USERPROFILE\.ssh\id_ed25519" [email protected]

İlk bağlantıda gelen uyarı:

The authenticity of host '185.123.45.67' can't be established.
ED25519 key fingerprint is SHA256:abc123...
Are you sure you want to continue connecting (yes/no)?

yes yazın. Fingerprint'i ideal olarak panel kontrolünden veya VNC console'dan ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub ile karşılaştırarak teyit edin.

2) PuTTY (UI ile bağlanmak isteyenler)

Komut satırından korkanlara veya tek tıkla kayıtlı oturumlar gerekiyorsa PuTTY hâlâ sağlam bir seçim:

  1. putty.org üstünden 64-bit installer indirin (resmi imzalı)
  2. PuTTY çalıştırın → Session ekranı açılır
  3. Host Name (or IP address): 185.123.45.67
  4. Port: 22 (özelleştirilmişse onu yazın)
  5. Connection type: SSH
  6. Saved Sessions alanına buyukweb-vds yazıp Save basın (sonraki sefer çift tık yeterli)
  7. Open → terminal penceresi açılır
  8. İlk bağlantıda PuTTY Security Alert çıkar; fingerprint doğruysa Accept (kalıcı kayıt) veya Connect Once
  9. login as: istemine root yazın → parolayı yapıştırın (PuTTY'da sağ tık = paste)

3) WSL (Windows Subsystem for Linux)

WSL kuruluysa Ubuntu/Debian dağıtımının terminalinde direkt:

ssh [email protected]

Avantajı: ~/.ssh/config, ssh-agent, scp/rsync birebir Linux davranışı verir; PowerShell OpenSSH'dan farklı olarak symlink/permission davranışı doğru çalışır.


macOS ve Linux'tan SSH Bağlantısı

Terminal (macOS Terminal.app veya iTerm2; Linux gnome-terminal/konsole/alacritty) açın:

ssh [email protected]                       # Default port 22, parola sorar
ssh -p 2222 [email protected]               # Özel port
ssh -i ~/.ssh/buyukweb_ed25519 [email protected]   # Özel anahtar dosyası
ssh -v [email protected]                    # Verbose (hata ayıklama)
ssh -vv [email protected]                   # Daha detay
ssh -vvv [email protected]                  # En detaylı: handshake/key seçimi adımı

OpenSSH macOS'ta default kuruludur (/usr/bin/ssh). Modern macOS sürümlerinde Keychain entegrasyonu vardır: ssh-add --apple-use-keychain ~/.ssh/id_ed25519 komutuyla passphrase'i sistem keychain'e bağlarsınız.


SSH Anahtar Tabanlı Kimlik Doğrulama (Asıl Önerilen)

Parola ile giriş, brute-force saldırı için zayıf bir savunmadır. Anahtar tabanlı doğrulamada özel anahtar bilgisayarınızda kalır, sunucuya yalnızca kriptografik kanıt gider.

Anahtar Üretimi: ssh-keygen

ssh-keygen -t ed25519 -C "kullanici@laptop-2026"

Sorulanlar:

  • File: Default ~/.ssh/id_ed25519 — değiştirmek isterseniz ~/.ssh/buyukweb_ed25519
  • Passphrase: Boş bırakmayın. Parola lokalde özel anahtarı şifreler; laptop çalınırsa hırsız anahtarı doğrudan kullanamaz.

Algoritma Seçimi (2026)

Algoritma Boyut Tavsiye
Ed25519 256-bit Default seçim — hızlı, modern, 128-bit eşdeğer güvenlik
RSA 4096 4096-bit Çok eski sunucu fallback'i
RSA 2048 2048-bit Yeni kurulumda kullanmayın
ECDSA 256–521 NIST curve şüpheleri; tercih edilmez
DSA 1024-bit Kırılmış; OpenSSH 7.0+ default kapalı

-a 100 ile KDF iterasyonu artırılır; passphrase'i brute-force'a karşı yavaşlatır:

ssh-keygen -t ed25519 -a 100 -C "ad@laptop"

Üretilen Dosyalar

  • ~/.ssh/id_ed25519özel anahtar; izni 600 olmalı, kimseyle paylaşılmaz
  • ~/.ssh/id_ed25519.pubpublic anahtar; sunucuya kopyalanır (paylaşmak güvenlik riski değil)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

İzinler doğru değilse OpenSSH "Permissions are too open" hatasıyla anahtarınızı reddeder.

Public Key'i Sunucuya Yükleme

ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]

Komut bir kez parola sorar, ardından public anahtarı ~/.ssh/authorized_keys dosyasına ekler. Sonraki ssh artık parola değil passphrase soracaktır.

ssh-copy-id yoksa (örn. Windows) parola ile bağlanıp manuel:

mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ssh-ed25519 AAAA... ad@laptop" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

~/.ssh/config ile Hızlı Erişim ve Alias

Aynı sunucuya ssh -p 2222 -i ~/.ssh/buyukweb_ed25519 [email protected] yazmak ezber yorgunluğu yaratır. ~/.ssh/config ile alias tanımlayın:

# ~/.ssh/config
Host buyukweb-vds
    HostName 185.123.45.67
    User yonetici
    Port 2222
    IdentityFile ~/.ssh/buyukweb_ed25519
    IdentitiesOnly yes
    ServerAliveInterval 60
    ServerAliveCountMax 3

Host *.ornekdomain.com
    User yonetici
    IdentityFile ~/.ssh/buyukweb_ed25519
    Port 2222

Artık tek komut yeter:

ssh buyukweb-vds

Yararlı opsiyonlar:

  • IdentitiesOnly yes — agent'ta birden fazla key varsa sadece belirteni dener; "Too many authentication failures" hatasını önler
  • ServerAliveInterval 60 — 60 saniyede bir keepalive paketi atar; NAT/router'ın oturumu sessizce düşürmesini engeller
  • ProxyJump bastion.ornekdomain.com — bastion (jump host) üstünden iç sunuculara atlama
  • ForwardAgent yes — yerel ssh-agent'ı sunucuya forward eder (dikkat: paylaşımlı sunucularda risk)

ssh-agent ile Passphrase Önbelleği

ssh-agent passphrase'i bir kez sorar, oturum boyunca tutar.

# Linux/macOS
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
ssh-add -t 3600 ~/.ssh/id_ed25519     # 1 saat sonra unutsun
ssh-add --apple-use-keychain ~/.ssh/id_ed25519   # macOS Keychain
# Windows OpenSSH
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519

sshd_config Sıkılaştırma — VDS İlk Gün

İlk bağlantıyı yaptığınız anda 22 portu dünya geneline açıktır ve botlar saniyede onlarca deneme atar. İlk gün ödev listesi:

1-3) Yeni kullanıcı, key kopyala, test et

adduser yonetici                                  # Debian/Ubuntu
useradd -m -G wheel yonetici && passwd yonetici   # AlmaLinux/RHEL
usermod -aG sudo yonetici                         # Debian/Ubuntu sudo grubu

Lokalden public key'i yeni kullanıcıya kopyalayın, yeni terminalden test edin:

ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]
ssh [email protected] && sudo -i

Bu testi atlamayın — bir sonraki adımda root SSH'ı kapatınca kendinizi dışarıda bırakırsanız KVM console olmadan kurtarma destek bileti demektir.

4) /etc/ssh/sshd_config sıkılaştır

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_config

Önemli direktifler:

Ayar Önerilen Açıklama
PasswordAuthentication no Brute-force saldırılarını öldürür
PermitRootLogin no Veya prohibit-password (sadece key ile)
PubkeyAuthentication yes Anahtar tabanlı doğrulama açık
AllowUsers yonetici deploy Sadece bu kullanıcılar SSH'a girebilir
MaxAuthTries 3 Bağlantı başına en fazla 3 deneme
ClientAliveInterval 300 İdle istemciyi 5 dk sonra düşür
ClientAliveCountMax 2 İki keepalive cevapsızsa bağlantıyı kapat
Protocol 2 SSH-1 kapalı (zaten default)
X11Forwarding no İhtiyacınız yoksa kapatın
AllowTcpForwarding yes/no Port forward kullanmıyorsanız no

5) Port değiştirme (opsiyonel)

Port'u 22'den 2222'ye almak gerçek güvenlik katmanı değildir (nmap -p- ip portu bulur), ama bot trafiğini ciddi azaltır. Kullanıyorsanız Port 2222 ekleyin ve firewall'da mutlaka açın (yoksa kendinizi dışarıda bırakırsınız): sudo ufw allow 2222/tcp veya firewall-cmd --add-port=2222/tcp --permanent && firewall-cmd --reload.

6) Servisi yeniden başlat — test ederek

sudo sshd -t                     # Config syntax testi
sudo systemctl restart sshd

Mevcut oturumu kapatmayın. Yeni terminalden bağlanmayı deneyin; çalışıyorsa eski oturumu kapatabilirsiniz, çalışmıyorsa eski oturum hâlâ root yetkisindeyken ayarı geri alabilirsiniz.


Port Forwarding (Tunneling): -L, -R, -D

SSH yalnızca shell oturumu değildir; aynı şifreli kanal üzerinde TCP port'ları taşıyabilir.

Local Forward (-L) — VDS'inizdeki MariaDB 127.0.0.1:3306'da dinliyor (dışarı kapalı), DBeaver ile bağlanmak istiyorsunuz:

ssh -L 13306:127.0.0.1:3306 [email protected]

DBeaver localhost:13306'a bağlanır, trafik SSH üstünden lokal MariaDB'ye gider.

Remote Forward (-R) — Lokal makinenizdeki webhook test sunucunuzu (localhost:8080) ekibe açmak için:

ssh -R 9090:localhost:8080 [email protected]

VDS'te curl http://localhost:9090 lokal makinenize gider. (sshd_config GatewayPorts yes ile dış erişim de açılır.)

Dynamic Forward (-D) — SOCKS5 proxy:

ssh -D 1080 [email protected]

Browser'ı SOCKS5 localhost:1080'e ayarlarsanız trafik VDS'in çıkışından çıkar.


Dosya Transferi: scp, sftp, rsync

# scp — tek seferlik kopya
scp dosya.tar.gz [email protected]:/opt/yedek/      # Lokal → uzak
scp yonetici@host:/var/log/nginx/error.log .             # Uzak → lokal
scp -r ./dist/ yonetici@host:/var/www/html/              # Recursive
scp -P 2222 dosya.txt yonetici@host:/tmp/                # -P büyük (port)

# sftp — interaktif
sftp yonetici@host
sftp> put index.html
sftp> get dump.sql

# rsync — akıllı senkron (deploy için ideal)
rsync -avz --progress ./dist/ yonetici@host:/var/www/html/
rsync -avz --delete ./dist/ yonetici@host:/var/www/html/   # Hedefte fazlalıkları sil
rsync -avz -e "ssh -p 2222" ./dist/ yonetici@host:/var/www/

rsync yalnızca değişen dosyaları (delta) taşır; 5 GB klasörü yeniden senkronlamak saniyeler sürer.


Hata Çözümü: Yaygın SSH Sorunları

Permission denied (publickey) — Bağlantı kuruldu, sunucu anahtarınızı kabul etmiyor. Public key yüklü mü? (cat ~/.ssh/authorized_keys). İzinler doğru mu? (chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys). Sunucuda journalctl -u sshd ipucu verir ("Authentication refused: bad ownership or modes"). İstemcide ssh -v ile "Offering public key:" satırlarını izleyin.

Permission denied (publickey,password) — Kullanıcı adı doğru mu? AllowUsers direktifinde misiniz?

Connection refused — TCP paket vardı ama 22'de dinleyen yok. Console'dan systemctl status sshd, ss -tlnp | grep ssh ile teyit.

Connection timed out — TCP paket hiç ulaşmıyor. Firewall (ufw/firewalld/panel) 22'yi kapatmış olabilir; ISS'iniz 22'yi engelliyor olabilir; mtr ip ile paketin nerede kesildiğini gör.

Host key verification failed / REMOTE HOST IDENTIFICATION HAS CHANGED — Hostkey değişti. Meşru sebepler: OS reinstall, IP yeniden atandı, veya MITM saldırısı. Panel/console'dan teyit etmeden yes demeyin. Meşruysa eski kaydı silin:

ssh-keygen -R 185.123.45.67
ssh-keygen -R "[185.123.45.67]:2222"

Too many authentication failures — Agent'ta 6+ key var, sunucu MaxAuthTries 3 ile kabul etmeden kesiyor. -o IdentitiesOnly=yes veya config'te IdentitiesOnly yes.

Broken pipe — NAT/router idle bağlantıyı düşürüyor. ~/.ssh/config'e ServerAliveInterval 60 + ServerAliveCountMax 3 ekleyin.


fail2ban: Brute-Force'a Otomatik Yanıt

Sshd_config'i sıkılaştırdınız ama loglar hâlâ binlerce başarısız deneme görüyor. fail2ban art arda başarısız giriş yapan IP'leri otomatik bir süre banlar.

sudo apt install fail2ban           # Debian/Ubuntu
sudo dnf install fail2ban           # AlmaLinux/RHEL (EPEL gerekebilir)

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

[sshd] bloğuna:

[sshd]
enabled = true
port    = 22
maxretry = 5
bantime = 1h
findtime = 10m
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd     # Banlı IP listesi

VDS İlk Gün Akış Şeması

(1) Sipariş e-postasından IP/parola → (2) ssh root@ip parolayla bağlan, fingerprint teyit → (3) apt update && apt upgrade veya dnf update → (4) adduser yonetici + sudo grubu → (5) Lokalde ssh-keygen -t ed25519 (passphrase'li) → (6) ssh-copy-id ile yeni kullanıcıya yükle → (7) Yeni terminalden ssh yonetici@ip + sudo -i testi → (8) sshd_config sıkılaştır (PasswordAuthentication no, PermitRootLogin no, AllowUsers yonetici) → (9) sshd -t && systemctl restart sshd (yeni terminalden test) → (10) Firewall ile 22, 80, 443 açık bırak → (11) fail2ban kur → (12) ~/.ssh/config alias.


Sıkça Sorulan Sorular

SSH portunu mutlaka değiştirmeli miyim? Hayır. Port değiştirmek hedefli saldırgana karşı koruma değildir (nmap -p- ip portu bulur), ama bot loglarını sessize alır. Asıl güvenlik: parola kapalı, key tabanlı doğrulama, fail2ban.

Anahtar dosyamı kaybedersem? Başka bir yetkili oturumdan authorized_keys'ten ilgili satırı silip yeni anahtar üretirsiniz. Tek erişiminiz kayıp anahtarsa Buyukweb VDS panelindeki KVM console'u kullanın.

Passphrase'siz anahtar? Önermiyoruz; laptop çalındığında attacker'a doğrudan erişim verir. CI/CD için passphrase'siz "deploy key" üretip from="ip" direktifiyle kısıtlamak alternatiftir.

Aynı anahtar birden fazla sunucuda? Evet — public anahtar her sunucunun authorized_keys'ine yüklenir. Ancak özel anahtar sızdığında tüm sunucular tehdit altındadır; rolüne göre ayrı key (prod, stage) tercih edilebilir.

SSH sürümümü nasıl öğrenirim? ssh -V istemci için, ssh host 'ssh -V' sunucu için. OpenSSH 8.x+ 2026'da güvenli kabul edilir.

PuTTY .ppk formatı? PuTTYgen ile OpenSSH id_ed25519'u yükleyip "Save private key" ile çevirin. Oturumda Connection → SSH → Auth altından gösterirsiniz.

Ekip için tek key paylaşmak? Hayır — her üye kendi anahtarını üretir, public anahtarlar authorized_keys'e ayrı satırlarda eklenir. Biri kaybolursa yalnızca o satırı silmek yeter.

2FA (TOTP) zorunlu kılınabilir mi? Evet, google-authenticator PAM + AuthenticationMethods publickey,keyboard-interactive ile key + TOTP kombinasyonu zorunlu olur.


Buyukweb VDS ve SSH Erişimi

E5-V4 VDS paketlerimizde (₺250/ay başlangıç, AMD EPYC tabanlı seçenekler dahil) tam root SSH default açıktır. KVM sanallaştırma sayesinde sunucu izole ortamda çalışır; iframe console panelimizden SSH erişiminiz tamamen kaybolduğunda da boot/recovery yapabilirsiniz. AlmaLinux 9 / Ubuntu 22.04 / Debian 12 imajlarımızda OpenSSH 9.x default kuruludur, 22 portu kuruluş anında dünyaya açıktır — yukarıdaki sıkılaştırma akışı ilk gün ödevidir.

Tüm VDS paketlerimiz için SSH ile ilgili soru aldığınızda 7/24 destek ekibimiz Türkçe yanıtlar; satış öncesi danışmanlık veya kurulum sonrası kritik troubleshoot için +90 224 909 12 12 numaramızdan ulaşılabilirsiniz.


İlgili Buyukweb içeriği:

Linux & Komut Satırı İlgili Hizmetlerimiz

Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin

Etiketler:

#SSH bağlantısı#Linux SSH#PuTTY#secure shell#uzak sunucu bağlantısı#terminal#port 22#SSH anahtarı

Bu yazıyı paylaş