Comment on page
🔐
SSH Konfigürasyon ve Kullanım Rehberi: Anahtarlar, Dosya Transferi ve Daha Fazlası
SSH konfigürasyonu, anahtar yaratma, dosya transferi ve daha fazlasını kapsayan kapsamlı bir kullanım kılavuzu.
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ı saklarForwardAgent
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ı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.
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.
rsync -av --exclude=*.pyc --exclude=*.log --exclude=/tmp/ . /path/to/destination- Ayrıca,
--exclude-from
seçeneğiyle hariç tutulacak dosyaları içeren bir dosya belirtebilirsinizexclude-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/