Chciałbym skopiować squid.conf
z jednego serwera na drugi.
- Serwery nie rozmawiają ze sobą. Chciałbym przejść przez moją stację roboczą.
- Oba serwery mają plik, więc zostanie on nadpisany na obiekcie docelowym.
- Pliki mają
600
uprawnienia i są własnością root. - logowanie użytkownika root przez ssh jest wyłączone (
PermitRootLogin no
). - Chciałbym to zrobić w jednym wierszu, jeśli to możliwe, ponieważ będzie to część przewodnika konfiguracji.
Wiem co zrobić
ssh source 'tar czpf - -C /etc/squid/ squid.conf' | \
ssh target 'tar xzpf - -C /etc/squid/'
kopiować pliki między serwerami i zachować uprawnienia. Jednak w tym przypadku otrzymam komunikat „Odmowa zezwolenia”.
Wiem też, że mogę to zrobić:
ssh -t source 'sudo cat /etc/squid/squid.conf'
W ten sposób -t
sudo może poprosić o hasło administratora przed wysłaniem zawartości pliku.
Problem polega na tym, że nie wiem, jak połączyć te techniki w coś, co poprosi o hasło sudo na każdym serwerze i prześle plik do miejsca docelowego. czy to możliwe?
AKTUALIZACJA : Oto najlepsze, co mogłem wymyślić:
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'
Nazywanie tego jednowarstwowym wydaje się odcinkiem. Myślę, że podzielę to na osobne kroki w przewodniku konfiguracji.