# SSH (Secure Shell): Uzak Sunucu Yönetimi İçin Temel Komutlar
Güvenli uzaktan erişim ve dosya transferi için kullanılan SSH, her sistem yöneticisinin ve geliştiricinin temel araç setidir.
## 1. Temel Bağlantı Komutları
* `ssh kullanici_adi@sunucu_ip`: Belirli bir kullanıcı ile uzak sunucuya bağlanır.
* `ssh -p 2222 kullanici_adi@sunucu_ip`: Standart 22 portu yerine özel bir port (örneğin 2222) üzerinden bağlanır.
* `ssh -v kullanici_adi@sunucu_ip`: Bağlantı sırasında "verbose" modunu açar; bağlantı sorunlarını (debug) çözmek için çok değerlidir.
## 2. SSH Anahtar Yönetimi (Şifresiz Giriş)
* `ssh-keygen -t ed25519`: Daha hızlı ve güvenli olan Ed25519 algoritmasını kullanarak yeni bir anahtar çifti oluşturur.
* `ssh-copy-id kullanici_adi@sunucu_ip`: Oluşturulan genel anahtarı (`public key`) uzak sunucuya kopyalar, böylece bir dahaki girişte şifre sormaz.
* `cat ~/.ssh/id_ed25519.pub`: Kendi bilgisayarınızdaki genel anahtarınızı görüntüler.
## 3. Güvenli Dosya Transferi (SCP & SFTP)
* `scp dosya.txt kullanici_adi@sunucu_ip:/home/user/`: Yerel bir dosyayı uzak sunucuya kopyalar.
* `scp -r klasor/ kullanici_adi@sunucu_ip:/home/user/`: Bir klasörü ve içindeki her şeyi uzak sunucuya kopyalar.
* `scp kullanici_adi@sunucu_ip:/dosya_yolu/dosya.txt .`: Uzak sunucudaki bir dosyayı kendi bilgisayarınıza çeker.
* `sftp kullanici_adi@sunucu_ip`: İnteraktif bir FTP benzeri arayüz başlatır; `put`, `get`, `ls` komutlarıyla dosya yönetimi sağlar.
## 4. SSH Tünelleme ve İleri Düzey İpuçları
* `ssh -L 8080:localhost:80 kullanici_adi@sunucu_ip`: Uzak sunucudaki 80 portunu yerel bilgisayarınızdaki 8080 portuna yönlendirir.
* `ssh -D 9090 kullanici_adi@sunucu_ip`: SOCKS vekili (proxy) oluşturur; tüm trafiğinizi SSH üzerinden geçirmenizi sağlar.
## İpucu: .ssh/config Dosyası
Her seferinde kullanıcı adı ve IP yazmak yerine, `~/.ssh/config` dosyanıza şunları ekleyin:
```text
Host sunucum
HostName 123.45.67.89
User root
Port 2222