SSHPass 在终端中有效,但在 Python 脚本中无效 - 权限被拒绝,请重试

SSHPass Works in Terminal, but not in Python Script - Permission Denied, Please Try Again

我正在尝试从我的 Pi Zero 获取一个 .jpg 文件,并使用带有 SSHPass 的 SCP 将其传输到我的 Pi 3B。 这是我的代码:

for x in range(0, count):
        client.exec_command('sudo -E python3 startup.py')
        name = "img"+str(x)
        print(name)
        output = subprocess.check_output("pwd", shell=True)
        output = str(output)[2:(len(str(output))-2)]
        os.system("pwd")
        print(output)
        command=("sshpass -p \'raspberry\' scp raspberrypizero.local:img.jpg "+name+".jpg")
        print(command)
        subprocess.Popen('./go.sh')
        print("Running")

go.sh中的代码:

#!/bin/sh
sshpass -p 'raspberry' scp raspberrypizero.local:img.jpg img0.jpg

每当我 运行 在同一目录下的终端中使用 go.sh 命令时,它都能正常工作并且图像已成功传输。 但是,每当我尝试 运行 python 脚本中的命令时,我都会得到以下输出:

sshpass -p 'raspberry' scp raspberrypizero.local:img.jpg img1.jpg
Permission denied, please try again.
Running

我曾尝试使用 os.systemsubprocess.call,但是这些都不起作用。

因此,如果有人能让我知道或知道为什么 sshpass / scp 在终端中工作,但在通过 python 脚本执行时却没有,我将不胜感激。

干杯。

您也可以使用以下命令:

sudo python3 xxxxx.py

然后:

command=("sudo sshpass -p \'raspberry\' scp raspberrypizero.local:img.jpg "+name+".jpg")