скрипт для ssh декількох серверів з різним паролем


0

У мене є скрипт, який виконує ті самі команди на декількох серверах через ssh.

spawn ssh [lindex $argv 0]
send "sudo /usr/sbin/useradd ytkatchen"
expect "password:"
send "Unix\@999\r"

Мій пароль не є однаковим для всіх серверів. У мене 2 різних пароля для довгого списку серверів.

Моя вимога полягає в тому, що скрипт повинен зробити ssh-з'єднання і використовувати правильний дійсний пароль, щоб зберегти роботу.

Вона не повинна виконуватися, якщо пароль неправильний, а не спробувати інший пароль і продовжувати йти.

Відповіді:


1

Простіше було б використовувати замість паролів ssh-ключі.

Ви можете створити пару ключів ssh на сервері і використовувати їх для автоматичного підключення без використання паролів.

Це також краще для безпеки, оскільки вам не потрібно підказувати або зберігати будь-який пароль зі своїм сценарієм.


Я вже маю вхід до всіх машин без паролів, але після входу в машину виконується команда s needudo / usr / sbin / useradd ytkatchen, яка потребує пароля.
parpande

Ви можете спробувати такі речі: echo mypassword | Команда sudo -S. -S зробити sudo слухати stdin.
nex84

0

Ви можете налаштувати без пароля sudo на серверах, так що вам не доведеться турбуватися про введення паролів. Короткий посібник:

$ sudo visudo

Додати новий рядок до кінця файлу:

EditThisToYourUsername ALL=(ALL) NOPASSWD:ALL

Зверніть увагу: це символ табуляції між Ім'я користувача та ВСІ.

Збережіть файл (Escape,: x, Enter).

Іншим рішенням є вислухати код виходу sudo команда, щоб дізнатися, чи введений пароль правильний чи ні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.