Я довольно новичок в Python и программировании.Я пытаюсь скопировать файл между двумя компьютерами через скрипт Python.Однако код
os.system("ssh " + hostname + " scp " + filepath + " " + user + "@" + localhost + ":" cwd)
не будет работать.Я думаю, что для этого нужен пароль, как описано в Как скопировать файл на удаленный сервер в Python, используя SCP или SSH? .Я не получил никаких журналов ошибок, файл просто не будет отображаться в моем текущем рабочем каталоге.
Однако любая другая команда с os.system("ssh " + hostname + "command")
или os.popen("ssh " + hostname + "command")
работает.-> command = e.g. ls
Когда я пытаюсь ssh hostname scp file user@local:directory
в командной строке, он работает без ввода пароля.
Я пытался объединить команды os.popen
с модулем getpass и pxssh для установки sshподключение к удаленному серверу и использование его для прямой отправки команд (я проверял это только для простой команды):
import pxssh
import getpass
ssh = pxssh.pxssh()
ssh.force_password = True
hostname = raw_input("Hostname: ")
user = raw_input("Username: ")
password = getpass.getpass("Password: ")
ssh.login(hostname, user, password)
test = os.popen("hostname")
print test
Но я не могу передавать команды на удаленный сервер (print test
показывает, что hostname = локальный, а не удаленный сервер), однако я уверен, что соединение установлено.Я подумал, что будет проще установить соединение, чем всегда использовать "ssh " + hostname
в командах bash.Я также попробовал некоторые из обходных путей в Как скопировать файл на удаленный сервер в Python с использованием SCP или SSH? , но я должен признать, что из-за отсутствия опыта я не смог заставить их работать.
Большое спасибо за помощь.