Реализация ssh без пароля с помощью аутентификации на основе ключей на нескольких удаленных компьютерах с использованием фабрики

Я пытаюсь сделать SSH на нескольких машинах после этого, пытаясь выполнить одну команду, которая отличается для каждой отдельной машины и получить полученный результат. Это аутентификация на основе ключей, следовательно, это ssh без пароля. Реализовали это, используя pexpect, теперь пытаясь решить проблемы с фабрикой:

  1. Несмотря на то, что была создана модель Ring of trust, при написании кода ниже он ожидает пароль:

env.user='хуг'

env.hosts = [ '10.162.53.53']

запуска ('LS')

[xyz @ 10.162.53.53] run: ls

[xyz@10.162.53.53] Пароль для входа в систему для 'xyz':

  1. Как обрабатывать крайние случаи, такие как предупреждения и отказ в разрешении в ткани
  2. Как реализовать SSH без пароля в ткани для нескольких машин.

    for host_user in users: child = spawn('ssh -l %s %s' % (host_user, host_name)) COMMAND_PROMPT = '[$\#]' try: i = child.expect([TIMEOUT, EOF, 'Permission denied ', '[Pp]assword: ', '[Yy]es/[Nn]o', COMMAND_PROMPT]) except: print("Exception was thrown") log.error(str(child)) child.close(force=True) if i == 0: log.error("ERROR: Timeout Occured !") log.info(str(child.before) + ' ' + str(child.after)) child.close(force=True) if i == 1: log.error("ERROR: reached EOF!") log.info(str(child.before) + ' ' + str(child.after)) child.close(force=True) if i == 2: log.error('Permission denied') child.close(force=True) if i == 3: log.error('Requesting password') child.close(force=True) if i == 4: log.info('RSA key permission') child.sendline('yes') child.sendline('command') child.expect('command_output_pattern')

0 ответов

Другие вопросы по тегам