Автоматически вводить пароль SSH без использования SSH-ключа, «ожидать», «sshpass» или Python

У меня есть небольшое устройство, которое запускает крошечную виртуальную машину PowerPC linux, которая мне нужна для SSH из скрипта на крошечной версии Yocto linux. Пароли PowerPC VM SSH остаются неизменными, но он сбрасывает большинство своих основных файлов, включая восстановление своих ssh-ключей, каждый перезапуск.

У установки Yocto linux нет команды «ожидать», и она не может установить «sshpass». Он имеет чрезвычайно ограниченную версию Python.

Я хотел бы иметь возможность выполнить требование пароля из основного приглашения 'ssh', используя только скрипт оболочки. Это возможно?

One Solution collect form web for “Автоматически вводить пароль SSH без использования SSH-ключа, «ожидать», «sshpass» или Python”

Предполагая, что вам нужен скрипт, который отправит пароль удаленному при входе через ssh, вот какой-то очень минимальный код на Python, который не нуждается в дополнительных библиотеках и так далее. Очевидно, что это всего лишь пример того, что возможно, используя только os forkpty execlp read write.

#!/usr/bin/python # simplest builtin python pseudo-tty for ssh password. meuh # http://unix.stackexchange.com/a/276385/119298 import os def run(cmd,*args): pid, fd = os.forkpty() if pid==0: # child os.execlp(cmd,*args) while True: data = os.read(fd,1024) print data if "password:" in data: # ssh prompt os.write(fd,"mypassword\n") elif data.endswith("$ "): # bash prompt for input os.write(fd,"echo hello\n") os.write(fd,"echo bye\n") os.write(fd,"exit\n") run("ssh", "ssh", "user@remote") 

Обратите внимание: вам нужно дать «ssh» дважды, один раз для argv [0].

  • Конечные точки USB 3.0 XCHI
  • Почему символы, отличные от ASCII, отображаются с помощью вопросительного знака?
  • Как узнать, какой ящик дерева устройств (dtb-файл) я использую?
  • где inittab присутствует в источнике ядра
  • Что создает ./var/lib в моем изображении yocto?
  • Время загрузки Система SysV vs Systemd - systemd занимает ~ 2 секунды дольше!
  • fatal: Не репозиторий git?
  • Запуск команд при запуске
  • Как лучше перейти между заставкой экрана и программой в буфер кадров?
  • Пользовательский исполняемый файл не может запускаться сразу после загрузки.
  • Значение? = И? == в bitbake / yocto
  • Linux и Unix - лучшая ОС в мире.