При выполнении SCP из subprocess.popen я получаю сообщение об ошибке: Warning: Identity File ./id_rsa.key not accessible: no such file or directory.
Проблема описана ниже.
Я хочу передать SCP файл с локального компьютера на удаленный компьютер, используя скрипт python, и я хочу указать ключ, который будет использоваться при выполнении SCP (с использованием опции -i).
Мой локальный компьютер - Windows 10 Enterprise. Моя «удаленная» машина в настоящее время является контейнером Docker с Alpine Linux на моем локальном хосте.
Когда я запускаю команду в командной оболочке с повышенными правами, она работает:
scp -i ./id_rsa.key -P 2222 ./test.plan root@127.0.0.1:/go/
Когда я выполняю команду через Python 3.6 subprocess.popen:
SSH = subprocess.Popen(['scp', '-i ./id_rsa.key', '-P 2222', './test.plan', 'root@127.0.0.1:/go/'],
cwd = r'C:\ThePathToThisStuff',
shell = False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
Он запрашивает у меня пароль, root@127.0.0.1's password:
, и когда я ввожу пароль, выдается следующее сообщение об ошибке, указывающее, что он не может найти ключ RSA:
<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'> ERROR: [b'Warning: Identity file ./id_rsa.key not accessible: No such file or directory.\n']
Я пытался указывать абсолютные пути к ключам, разделяя каждую команду в списке аргументов на параметры и значения, различные группировки и т. Д.