2016-04-14 2 views
1

Привет Я использую NXclient (UNIX/KDE). Я запускаю скрипт python, где он пытается создать сеанс ssh на другой сервер и выполнить некоторую задачу автоматизации. В основном я храню пароль в переменной, и когда SSH-сеанс запрашивает пароль, я просто отправляю сохраненный пароль. он работает очень хорошо, используя шпатлевку.отключить открытый диалог ssh для пароля во время сеанса ssh

ПРОБЛЕМА: когда я использую выше nxclient. каждый раз, когда SSH-сессия нуждается в пароле. Появляется приглашение GUI с запросом пароля, который замораживает терминал и не выполняет мой скрипт. Я не хочу вводить пароль в gui, потому что пароль уже сохранен в переменной, которая будет использоваться.

Я прилагается нижеследующий снимок экрана. Как я могу отключить это, пожалуйста, помогите. click for screen shot

[EDIT] раздел кода, который делает что if password_prompt: child.sendline(getpass.getpass('Enter your windows password: ')) else : child.sendline(ssh_password) i = child.expect([os.path.basename(keyfile), pexpect.TIMEOUT])

+0

Вы можете переключиться на более безопасную [аутентификацию с открытым/закрытым ключом] (https://help.ubuntu.com/community/SSH/OpenSSH/Keys) – jDo

ответ

0

Ну, у вас есть несколько вариантов:

  1. В настоящее время ваши ключи added в ssh-agent с -c вариант, который приносит диалог подтверждения попросив вас ввести yes каждый раз, когда используется конкретный ключ. Вы можете удалить эту опцию -c из сценариев запуска сеанса или изменить ssh-agent из Ssh-Agent по умолчанию OpenSSH на более удобный (но, возможно, менее безопасный) вариант, который позволит вам хранить ключи только для сеанса или каким-либо другим образом.
  2. Полностью отключить использование ssh-agent и предоставить кодовую фразу из терминала по переменной unset SSH_AUTH_SOCK. Будьте готовы, чтобы пароли не могли быть прочитаны из STDOUT, они требуют использования TTY для обработки ввода (проверка pexpect)
  3. Переключиться на ключи без кодовой фразы. В случае ключей, предназначенных для робота, это не похоже на серьезное нарушение безопасности из-за того, что вы собираетесь хранить кодовую фразу в текстовом виде. Но, вероятно, было бы лучше настроить
+0

Что вы имеете в виду «В настоящее время ваши ключи добавляются в ssh-agent с опцией -c». Где скрипт запуска сеанса? –

+0

Это зависит от используемого вами дистрибутива. Mine добавляет ключи при запуске из сценария в '/ etc/profile.d /' – user3159253

+0

Или вы можете просто повторно добавить ключ без опции '-c', чтобы избежать ненужного подтверждения с помощью' ssh-add' – user3159253

0

На самом деле есть другая переменная среды, называемая DISPLAY. отключение обоих DISPLAY и SSH_ASKPASS помогло мне решить эту проблему

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