2015-08-11 2 views
0

Я пишу скрипт bash для настройки туннеля GRE как на локальной, так и на удаленной машине.SSH и запускать команды mid-script

Как бы я мог (в середине сценария) иметь кусок кода, который регистрируется на удаленном компьютере, запускает требуемые команды iptables и выходит из системы, а затем продолжает установку на ЛОКАЛЬНАЯ машина?

ответ

1

Если клиентская машина также работает с bash, и установлен OpenSshClient: вы можете просто запустить ssh [email protected] yourCommandToRunWithoutPty. Это выполняется командой БЕЗ pty/tty, что важно в некоторых случаях, например sudo (sudo ожидает, что tty запросит пароль).

Из-за этого я бы предложил добавить без доступа к этой команде этого пользователя в /etc/sudoers вашего сервера, если (надежно!) Возможно.

Если вы правильно настроили, ваш клиент должен иметь возможность запускать только ssh [email protected] sudo iptables --some-iptables-switches.

ПРИМЕЧАНИЯ При добавлении команды беспарольной к вашим /etc/sudoers, помните, чтобы всегда быть явно, как это возможно с аргументами, так что никто не может злоупотреблять аргументы unintented должны работать без пароля SUDO.

+0

Хорошо, если бы я хотел войти в систему как пользователь root, например, как бы он запрашивал пароль? Я хочу, чтобы ssh заходил на удаленный компьютер как root, и имел пароль в самом скрипте для машины. –

+0

Я не поэтому я уверен, что я хочу сделать это, войти в систему и выполнить команды iptables. Не нужен ли мне для этого root? Как я могу запросить у пользователя пароль root? Как мне войти в систему как пользователь root и сохранить проход в скрипте? Это не будет представлять проблемы безопасности для меня, потому что у меня есть уникальное использование для этого, и только я буду использовать его. –

Смежные вопросы