1

Я использовал следующий bash для выключения удаленных компьютеров, но для каждого компьютера я должен ввести для него пароль.Можно ли ввести пароль автоматически?

#!/bin/bash

ssh -t root@192.168.1.11 "sudo poweroff"
ssh -t root@192.168.1.12 "sudo poweroff"
ssh -t root@192.168.1.13 "sudo poweroff"
ssh -t root@192.168.1.14 "sudo poweroff"
ssh -t root@192.168.1.15 "sudo poweroff"
ssh -t root@192.168.1.16 "sudo poweroff"
ssh -t root@192.168.1.17 "sudo poweroff"
ssh -t root@192.168.1.18 "sudo poweroff"
ssh -t root@192.168.1.19 "sudo poweroff"
ssh -t root@192.168.1.20 "sudo poweroff"
ssh -t root@192.168.1.21 "sudo poweroff"
ssh -t root@192.168.1.22 "sudo poweroff"
ssh -t root@192.168.1.23 "sudo poweroff"
ssh -t root@192.168.1.24 "sudo poweroff"
ssh -t root@192.168.1.25 "sudo poweroff"
ssh -t root@192.168.1.26 "sudo poweroff"

2 ответа2

2

Вам не нужно. Поскольку вы вошли в систему как пользователь root абсолютно нет причин использовать sudo , просто запустите poweroff или (лучше) shutdown -h напрямую.

Если по какой-то причине, не объясненной в вашем вопросе, вам действительно нужен sudo , используйте опцию sudo -S . От man sudo:

   -S          The -S (stdin) option causes sudo to read
               the password from the standard input
               instead of the terminal device.  The
               password must be followed by a newline
               character.

Например:

#!/bin/bash

ssh -t root@192.168.1.11 "echo PASSWORD1 | sudo -S poweroff"
ssh -t root@192.168.1.12 "echo PASSWORD2 | sudo -S poweroff"
2

Чтобы избежать ввода пароля, используйте ssh-keygen для создания ключа аутентификации и загрузите открытый ключ на все ваши серверы. Кстати, Terdon правильно, если вы root, не используйте sudo .

ssh root@192.168.1.11 poweroff
ssh root@192.168.1.12 poweroff

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .