S SH не работает внутри скрипта и выдает ошибку 's sh', которая не распознается как внутренняя или внешняя команда, работающая программа или командный файл - PullRequest
1 голос
/ 10 февраля 2020

Я планировал автоматизировать ручные шаги для запуска команд s sh с использованием python. Я разработал код, который автоматически выполняет приведенную ниже команду и регистрирует меня в ВМ. Команда S SH отлично работает, когда я запускаю код в приглашении spyder и conda. Команда работает всякий раз, когда я открываю cmd и пробую команду непосредственно там, где находится ключ, но не работает и выдает ошибку всякий раз, когда я запускаю сценарий python в командной строке cmd

os.system('cmd /k "ssh -i <path to private key> <user>@<remotehost>"')

error:

'ssh' is not recognized as an internal or external command,
operable program or batch file.

Как решить эту ошибку, чтобы запустить скрипт на cmd? Примечание. Команды s sh отлично работают в cmd, но не внутри скрипта при запуске в cmd

.

Ответы [ 3 ]

0 голосов
/ 10 февраля 2020

Возможно, попробуйте использовать фактический путь к команде.

Пример: os.system ('cmd / k "/ usr / bin / s sh -i" @ "')

Этот путь может быть другим для вас. Вы можете ввести «Какие s sh», чтобы найти путь к s sh, если вы используете среду Linux.

0 голосов
/ 10 февраля 2020

У вас есть лишняя "в середине вашей примерной команды, сразу после пути к закрытому ключу. Также помните, что вы должны использовать два \\, чтобы правильно указать путь к закрытому ключу. Вот пример:

import os
os.system('cmd /k "ssh -i C:\\Users\\dhruv\\.ssh\\id_rsa <user>@<remote_host>"')
0 голосов
/ 10 февраля 2020

Возможно, у вас нет пути к исполняемому файлу s sh в переменной окружения path. Вы можете либо добавить его в переменную окружения, либо попытаться указать полный путь к программе s sh.

...