Saya ingin menyalin squid.conf
dari satu server ke yang lain.
- Server tidak berbicara satu sama lain. Saya ingin melewati workstation saya.
- Kedua server memiliki file, sehingga akan ditimpa pada target.
- File-file tersebut memiliki
600
izin dan dimiliki oleh root. - login root melalui ssh dinonaktifkan (
PermitRootLogin no
). - Saya ingin melakukannya dalam satu baris, jika memungkinkan, karena ini akan menjadi bagian dari panduan pengaturan.
Saya tahu harus melakukan
ssh source 'tar czpf - -C /etc/squid/ squid.conf' | \
ssh target 'tar xzpf - -C /etc/squid/'
untuk menyalin file antara server dan mempertahankan izin. Namun, dalam hal ini saya akan mendapatkan "Izin ditolak".
Saya juga tahu saya bisa melakukan ini:
ssh -t source 'sudo cat /etc/squid/squid.conf'
Dengan cara ini, -t
sudo memungkinkan untuk meminta kata sandi admin sebelum mengeluarkan konten file.
Masalahnya adalah, saya tidak tahu bagaimana menggabungkan teknik-teknik itu menjadi sesuatu yang akan meminta kata sandi sudo pada setiap server, dan mentransfer file ke tujuannya. Apakah ini mungkin?
UPDATE : Ini yang terbaik yang bisa saya pikirkan:
ssh -t source 'sudo tar czf /tmp/squid.tgz -C /etc/squid squid.conf' && \
ssh source 'cat /tmp/squid.tgz' | \
ssh target 'cat >/tmp/squid.tgz' && \
ssh -t source 'sudo rm /tmp/squid.tgz' && \
ssh -t target \
'sudo tar xzf /tmp/squid.tgz -C /etc/squid && sudo rm /tmp/squid.tgz'
Menyebut ini one-liner tampak seperti peregangan. Saya pikir saya hanya akan memecahnya menjadi langkah-langkah terpisah dalam panduan pengaturan.