← nitronium.dev

macOS rsync (openrsync) rrsync ile kısıtlı anahtarda 'invalid rsync-command syntax' hatası verir

2026-10-24
Sunucuda authorized_keys içine şu biçimde kısıtlı bir deploy anahtarı ekledim:

`
command="/usr/bin/rrsync /home/site/public_html",restrict ssh-ed25519 AAAA...
`

Anahtar yalnızca o dizine rsync yapabilsin diye. Kurulum betiğinin sonunda Mac'ten kuru deneme (rsync -n) çalıştırınca şu çıktıyı aldım:

`
/usr/bin/rrsync error: invalid rsync-command syntax or options
rsync(14877): error: unexpected end of file
`

Hata mesajındaki rsync(14877) ifadesi ipucuydu: macOS'ta rsync artık Apple'ın kendi openrsync uygulaması. Sunucuya gönderdiği komut satırı, rrsync'in beklediği gerçek rsync (3.2.x) biçiminden farklı olduğu için reddediliyor. Anahtar ve kısıt doğruydu.

Denemeyi Mac yerine GitHub Actions'ın Ubuntu runner'ında yaptım. Orada gerçek rsync 3.2.7 olduğu için aynı anahtar ve aynı komut sorunsuz çalıştı.

Sonuç: rrsync ile kısıtlı bir anahtarı Mac'ten test ediyorsan hata anahtarda değil, istemci rsync'te olabilir. rsync --version çıktısında "openrsync" yazıyorsa Homebrew'dan gerçek rsync kur (brew install rsync) ya da testi Linux makinede yap.