Решено: Запуск скриптов по SSH через сеть (Установить соединение по SSH без участия пользователя и ключей)

Модераторы: Skull, Модераторы разделов

roleg
Сообщения: 38
ОС: ALT Linux 4

Решено: Запуск скриптов по SSH через сеть

Сообщение roleg »

Около 10 компьютеров (Z. ALTLinux 4 Server) работают в одной сети с компьютером (Y. ALTLinux 4 Desktop). Необходимо без участия пользователя через SSH запустить на каждом из Z серверов скрипт по расписанию cron из компа Y.
Основная проблема: необходимо во время сеанса expect переключение в root-а.

Вот кусок кода который я использую:

Код: Выделить всё

#!/usr/bin/expect -f
#
# For example:
#  ./this password ip scriptname
#
set prompt "(%|#|\\\$) $"
set password [lrange $argv 0 0]
set ipaddr [lrange $argv 1 1]
set scriptname [lrange $argv 2 2]
set timeout -1
#Шпионим за SSH
spawn ssh admin@$ipaddr $scriptname
#Как только увидим ?assword даем $password
expect "*?assword:*" {send -- "$password\r"}


А вот так я пытался перейти на root-а:

Код: Выделить всё

spawn su -l
expect "*?assword:*" {send -- "$passwordssh\r"}


При этом ввод комманды su не перехватывается expect-ом :(
На всех серверах не установлен expect и нет такой возможности.

Вопрос: что я должен дописать чтобы стать root-ом на серверах а уже потом запустить скрипт?
Спасибо сказали:
Alexei_VM
Сообщения: 765
ОС: ALT Linux Sisyphus

Re: Решено: Запуск скриптов по SSH через сеть

Сообщение Alexei_VM »

roleg писал(а): ↑
13.08.2008 13:05
Около 10 компьютеров (Z. ALTLinux 4 Server) работают в одной сети с компьютером (Y. ALTLinux 4 Desktop). Необходимо без участия пользователя через SSH запустить на каждом из Z серверов скрипт по расписанию cron из компа Y.
Основная проблема: необходимо во время сеанса expect переключение в root-а.

Вот кусок кода который я использую:


Как-то сложно выходит.

1. А не проще вызывать этот скрипт из cron на локальных машинах?
2. А не проще по ssh логиниться рутом на удаленные машины, вместо пароля использовать файл с ключом, и выполнять удаленно куманду?
3. Может вместо su -l использовать sudo без пароля?
Спасибо сказали:
roleg
Сообщения: 38
ОС: ALT Linux 4

Re: Решено: Запуск скриптов по SSH через сеть

Сообщение roleg »

1. На тачке Y запускается скрипт по расписанию который генерирует специальные параметры и выбирает какой скрипт запустить на каждом сервере.
2. Файл с ключом не использовать. Пароль хотелось бы вводить через expect.
3. Можно пример, как с помощью sudo я запущу скрипт если обычному пользователю я не хочу давать таких прав :)

Да собственно просто я хочу узнать больше тонкостей в использовании expect.
Спасибо сказали:
Alexei_VM
Сообщения: 765
ОС: ALT Linux Sisyphus

Re: Решено: Запуск скриптов по SSH через сеть

Сообщение Alexei_VM »

roleg писал(а): ↑
13.08.2008 14:01
1. На тачке Y запускается скрипт по расписанию который генерирует специальные параметры и выбирает какой скрипт запустить на каждом сервере.
2. Файл с ключом не использовать. Пароль хотелось бы вводить через expect.
3. Можно пример, как с помощью sudo я запущу скрипт если обычному пользователю я не хочу давать таких прав :)


Не ищете простых путей?

Логиньтесь на удаленные машины рутом сразу.
Спасибо сказали:
roleg
Сообщения: 38
ОС: ALT Linux 4

Re: Решено: Запуск скриптов по SSH через сеть

Сообщение roleg »

Я не могу ограничить себя только root-ом и тем более увеличить к-во открытых SSH сессий.
Спасибо сказали:
Аватара пользователя
Ariasp
Сообщения: 254
Статус: NixLander

Re: Решено: Запуск скриптов по SSH через сеть

Сообщение Ariasp »

roleg писал(а): ↑
13.08.2008 13:05
На всех серверах не установлен expect и нет такой возможности.

Оно и не нужно - достаточно, чтобы интерпретатор экспекта был установлен на серваке, где запускается скрипт.

Вопрос: что я должен дописать чтобы стать root-ом на серверах а уже потом запустить скрипт?

Вопрос туманен. Вариант: spawn ssh admin@$ipaddr sudo $scriptname
; при этом добавляешь юзера admin в судоеры на remote-серверах с возможностью выполнять нужный скрипт, возможно без пароля

с другой стороны - если такая тяга к
Пароль хотелось бы вводить через expect.

,то что мешает сразу выполнять spawn ssh root@$ipaddr $scriptname :D?
Спасибо сказали:
roleg
Сообщения: 38
ОС: ALT Linux 4

Re: Решено: Запуск скриптов по SSH через сеть

Сообщение roleg »

Избавлюсь от туманостей :) и поткрываю на всех тачках сокеты. Тема закрыта.
Спасибо сказали:
roleg
Сообщения: 38
ОС: ALT Linux 4

Re: Решено: Запуск скриптов по SSH через сеть

Сообщение roleg »

Избавлюсь от туманостей :) и поткрываю на всех тачках сокеты. Тема закрыта.
Спасибо сказали: