2016-09-19 8 views
0

Как получить эту команду scp, преобразованную для подпроцесса python.Scp с подпроцессом python с закрытым ключом

scp -i /home/ramesh7128/Downloads/<private_key>.pem /home/ramesh7128/Downloads/testing_transfer.py <remote_add>:<remote_file_path> 

esp часть, чтобы включить путь закрытого ключа, где у меня возникают проблемы.

+0

В чем проблема? Обычно сообщение об ошибке является индикатором ... –

+0

Существует гораздо лучший способ сделать такие вещи с помощью django: http://stackoverflow.com/a/37087098/267540 – e4c5

ответ

2

Убедитесь, что вы в том числе пользователя на удаленном компьютере и что вы отформатировали вещи правильно:

scp -i /home/ramesh7128/Downloads/<private_key>.pem /home/ramesh7128/Downloads/testing_transfer.py <remote_user>@<remote_add>:<remote_file_path> 
scp -i private_key.pem /path/to/the/local/file [email protected]:/path/to/the/remote/file 

EDIT: (с комментариями)

subprocess.Popen(["scp", "-i", "path/to/private_key.pem", myfile, destination]) 

Этот синтаксис позволяет Popen знать о опции -i.

+0

не то, что я ищу ... вы просто написал мою команду оболочки снова .... – DeadDjangoDjoker

+0

import subprocess p = subprocess.Popen (["scp", myfile, destination]) sts = os.waitpid (p.pid, 0) – DeadDjangoDjoker

+1

Это было непонятно из ваш вопрос - пользовательская часть обычно забывается, когда возникают проблемы с scp. Похоже, вам нужно сделать: subprocess.Popen (["scp", "-i", "путь/to/private_key.pem", myfile, destination]), чтобы Popen узнал о закрытом ключе. –