Comment on page
SSH ve Rsync Kullanımı: .ssh/config Dosyası, Anahtar Oluşturma ve Dosya Aktarımı
ssh, rsync, cloud computing, devops

5360422.png
Host my.host
HostName 123.123.32.231
User username
IdentityFile ".ssh/rsa.pem"
ForwardAgent yes
# Tüm sunucular için ortak ayarlar
Host *
ForwardAgent yes
AddKeysToAgent yes
.ssh/config
dosyasına sunuculara bağlanmak için gerekli bilgileri kaydederizHostName
sunucunun IP adresiUser
sunucudaki kullanıcı adıIdentityFile
sunucuya bağlanmak için kullanılacak anahtar dosyaAddKeysToAgent
tekrardan bağlantılar için anahtarı saklar
ssh my.host
komutu ile aslındassh -A [email protected] -i .ssh/rsa.pem
kodunu yazmış oluruz
#!/usr/bin/env zsh
ADDRESS="[email protected]"
KEY_ID="raspi"
# SSH key oluşturma
KEY_PATH="$HOME/.ssh/${KEY_ID}_ecdsa" # veya _rsa
ssh-keygen -t ecdsa -b 521 -f ${KEY_PATH}
# SSH keyi sunucuya kopyalama ve yetkilendirme
ssh-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ğlanma
ssh $ADDRESS -A
# Apple keychain üzerine ekleme
# chmod 400 $KEY_PATH
ssh-add --apple-use-keychain $KEY_PATH # Sadece passphrase için çalışır
REMOTE="[email protected]"
SOURCE="path"
DESTINATION="path"
scp -r $REMOTE:$SOURCE $DESTINATION
rsync -avzrt --progress "$REMOTE:$SOURCE" "$DESTINATION"
**`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.
Ayrıca, **`--exclude-from`** seçeneğiyle hariç tutulacak dosyaları içeren bir dosya belirtebilirsiniz
- `exclude-list.txt` dosyasında listelenen desenlerle eşleşen tüm dosyaları hariç tutacaktır. - Dosya, her satıra bir `pattern` içermelidir
rsync -av --exclude-from=exclude-list.txt . /path/to/destination
- Bu komut
exclude-list.txt
dosyasında listelenen dosyaları ve dizinleri hariç tutacaktır a
seçeneği arşivleme modunu etkinleştirir, yani dosya meta verilerini (öznitelikleri, izinleri, vb.) korur.v
seçeneği etkinleştirilirse, rsync'in ne yaptığını gösterir.z
seçeneği etkinleştirilirse, dosyaları sıkıştırır ve yükleme sırasında çıkarır.e ssh
seçeneği rsync'in SSH ile nasıl bağlantı kuracağını belirtir.E
, ile dosya içerisindekiIcon
gibi bilgiler de aktarılırr
, ile alt dizinlerde de ilerlert
, dosyanın son değişiklik bilgisini korur
rsync -avz --exclude-from=exclude-list.txt -e ssh /local/path/ user@remote-server:/path/to/destination
*.log
/tmp/