Appearance
09 - SSH ve Uzaktan Erişim (Remote Access)
SSH (Secure Shell), uzaktaki Linux sunucularını yönetmek için kullanılan standart protokoldür. Güvenli, şifreli bir iletişim sağlar.
1. Temel Bağlantı
bash
ssh user@192.168.1.50
ssh -p 2222 user@192.168.1.50 # Farklı port kullanımı2. Anahtar Tabanlı Kimlik Doğrulama (Key-Based Auth)
Şifre girmek yerine SSH anahtarları kullanmak hem daha güvenli hem de daha pratiktir.
Adım 1: Anahtar Oluşturma
Kendi bilgisayarınızda (Client) çalıştırın:
bash
ssh-keygen -t rsa -b 4096
# Enter'a basarak varsayılan konuma (~/.ssh/id_rsa) kaydedin.Adım 2: Anahtarı Sunucuya Kopyalama
bash
ssh-copy-id user@192.168.1.50Artık şifresiz giriş yapabilirsiniz!
3. SSH Config Dosyas (~/.ssh/config)
Sürekli IP adresi yazmak yerine sunuculara takma isim (alias) verebilirsiniz.
~/.ssh/config dosyasını oluşturun veya düzenleyin:
ssh
Host web-prod
HostName 192.168.1.50
User ubuntu
Port 22
IdentityFile ~/.ssh/id_rsa
Host db-server
HostName 10.0.0.5
User admin
ProxyJump web-prod # web-prod üzerinden atlayarak bağlanKullanım:
bash
ssh web-prod
ssh db-server4. SSH Tünelleme (Port Forwarding)
Local Port Forwarding
Uzaktaki bir servisi (örn: veritabanı) kendi bilgisayarınızdaymış gibi kullanmak.
bash
# Uzaktaki 3306 (MySQL) portunu, kendi bilgisayarımın 3307 portuna bağla
ssh -L 3307:localhost:3306 user@remote-serverArtık localhost:3307 adresine bağlandığınızda aslında uzaktaki veritabanına bağlanırsınız.
Remote Port Forwarding
Kendi bilgisayarınızdaki bir servisi (örn: geliştirdiğiniz web sitesi) dış dünyaya açmak.
bash
# Kendi 8080 portumu, sunucunun 9090 portuna bağla
ssh -R 9090:localhost:8080 user@remote-server5. Dosya Transferi (SCP & SFTP)
bash
# Dosya Gönder
scp dosya.txt user@remote:/tmp/
# Klasör Çek
scp -r user@remote:/var/www/html ./yedek