Пишу себе тулзу, менеджер соединений ssh. Возник вопрос следующий: у меня есть все данные для входа по ssh, либо посредством пароля, либо используя PEM файл. Как лучше сделать, чтобы из-под питона открывать сессию ssh?
При попытках авторизации PEM файлом, я получаю, что у файла нет должных разрешений, а если я делаю os.chmod("file.pem", 600)
и даже os.chown("file.pem", os.geteuid(), os.getegid())
, я попадаю на ошибку, мол, недостаточно разрешений.
Саму сессию в идеале бы открывать командой os.system("ssh -i file.pem user@host -p 22")
, куда я подставляю данные.
При авторизации через пароль, я просто не могу вставить пароль, потому что ssh предоставляет терминал, и ничего из stdin он не слушает.
Как быть? Программа задумывалась для упрощения жизни, но в идеале все должно сводиться к написанию команды и получению заветного терминала.