Автоматически вводить пароль 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].

Interesting Posts
Linux и Unix - лучшая ОС в мире.