SSH ve Rsync Kullanımı: .ssh/config Dosyası, Anahtar Oluşturma ve Dosya Aktarımı
📁 .ssh/config dosyası ne işe yarar
Host my.host HostName 123.123.32.231 User username IdentityFile ".ssh/rsa.pem" ForwardAgent yes# Tüm sunucular için ortak ayarlarHost * ForwardAgent yes AddKeysToAgent yes
.ssh/config dosyasına sunuculara bağlanmak için gerekli bilgileri kaydederiz
HostName sunucunun IP adresi
User sunucudaki kullanıcı adı
IdentityFile sunucuya bağlanmak için kullanılacak anahtar dosya
AddKeysToAgent tekrardan bağlantılar için anahtarı saklar
`ForwardAgent` lokal **agent** bilgilerini uzan sunucuya aktarır
- **Git SSH auth** varsa eğer lokalde, karşı sunucuya da bu aktarılır
ssh my.host komutu ile aslında ssh -A username@123.123.32.231 -i .ssh/rsa.pem kodunu yazmış oluruz
🔑 SSH key oluşturup sunucuya yüklemek
#!/usr/bin/env zshADDRESS="yia@raspberrypi.local"KEY_ID="raspi"# SSH key oluşturmaKEY_PATH="$HOME/.ssh/${KEY_ID}_ecdsa"# veya _rsassh-keygen-tecdsa-b521-f ${KEY_PATH}# SSH keyi sunucuya kopyalama ve yetkilendirmessh-copy-id-i $KEY_PATH.pub $ADDRESS# cat $KEY_PATH.pub | $ADDRESS "mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys"# SSH keyi yerel anahtarlara ekleme (eğer şifre istenirse anahtar eklenmeli)ssh-add $KEY_PATH# SSH ile adrese bağlanmassh $ADDRESS -A# Apple keychain üzerine ekleme# chmod 400 $KEY_PATHssh-add--apple-use-keychain $KEY_PATH # Sadece passphrase için çalışır
**`rsync`** kullanarak hariç tutulacak dosya desenlerini belirtmek için aşağıdaki örnekleri kullanabilirsiniz:
- **`.log`**: .log uzantılı tüm dosyaları hariç tutar. - **`.png`**: .png uzantılı tüm dosyaları hariç tutar. - **`/dirname/`**: dirname dizinini hariç tutar. - **`/dirname/*`**: dirname dizinindeki tüm dosyaları hariç tutar. - **`/dirname/file.txt`**: dirname dizinindeki file.txt dosyasını hariç tutar.
**`rsync`** için birden fazla desen belirtebilirsiniz **`--exclude`** seçeneği ile, örneğin:
- Bu `.pyc` ve `.log` uzantılı tüm dosyaları, ayrıca /tmp/ dizinini hariç tutacaktır.