ฉันต้องการคัดลอกsquid.conf
จากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่ง
- เซิร์ฟเวอร์ไม่ได้พูดคุยกัน ฉันต้องการผ่านเวิร์กสเตชันของฉัน
- เซิร์ฟเวอร์ทั้งสองมีไฟล์ดังนั้นจึงจะถูกเขียนทับบนเป้าหมาย
- ไฟล์มี
600
สิทธิ์และเป็นของ root - การเข้าสู่ระบบผ่านทางรูต ssh ถูกปิดการใช้งาน (
PermitRootLogin no
) - ฉันต้องการที่จะทำมันในบรรทัดเดียวถ้าเป็นไปได้เพราะมันจะเป็นส่วนหนึ่งของคู่มือการติดตั้ง
ฉันรู้ว่าต้องทำ
ssh source 'tar czpf - -C /etc/squid/ squid.conf' | \
ssh target 'tar xzpf - -C /etc/squid/'
เพื่อคัดลอกไฟล์ระหว่างเซิร์ฟเวอร์และสงวนสิทธิ์ อย่างไรก็ตามในกรณีนี้ฉันจะได้รับ "ปฏิเสธสิทธิ์"
ฉันก็รู้ว่าฉันสามารถทำได้:
ssh -t source 'sudo cat /etc/squid/squid.conf'
วิธีนี้-t
ทำให้ sudo เพื่อขอรหัสผ่านของผู้ดูแลระบบก่อนที่จะส่งออกเนื้อหาของไฟล์
ปัญหาคือฉันไม่รู้วิธีรวมเทคนิคเหล่านั้นเป็นสิ่งที่จะขอรหัสผ่าน sudo บนเซิร์ฟเวอร์แต่ละเครื่องและถ่ายโอนไฟล์ไปยังปลายทาง เป็นไปได้ไหม
UPDATE : นี่คือสิ่งที่ดีที่สุดที่ฉันจะได้รับ:
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'
การเรียกสิ่งนี้สายการบินเดียวดูเหมือนยืด ฉันคิดว่าฉันจะทำลายมันลงเพื่อแยกขั้นตอนในคู่มือการตั้งค่า