在python中执行时autosh不工作

2024-09-19 23:43:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建ssh反向隧道。当我在终端上运行以下命令时,它的效果会更好:

autossh -M 10876 -N -f -o PubkeyAuthentication=yes -o PasswordAuthentication=no -i /root/.ssh/id_rsa -R 6666:localhost:22 root@**.**.**.** -p 2233

但是当我在python中使用os.system()或使用subprocess运行它时,它就不起作用了。当我检查进程列表时,进程被创建并运行,与上一个方法没有区别(直接在终端运行)

python代码:

^{pr2}$

知道有什么问题吗?在


Tags: no命令idlocalhost终端进程rootrsa
2条回答

{{t}你不想使用cd2}命令。。。它应该是一根线。在

因为您将参数作为一个序列传递给Popen,所以第一个arg(autossh)被用作命令,其余的参数实际上被传递给shell,而不是autossh。在

所以。。。您可以删除shell=True,也可以通过删除shlex.split()作为字符串传递参数。在

https://docs.python.org/2/library/subprocess.html#subprocess.Popen

它在Windows10中很适合我(cygwin中的autosh,Python3.6) port = 6379; command = f'autossh -M 1{port} -N -f -C -L {port}:localhost:{port} root@acone2'; proc = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE, shell=True)

相关问题 更多 >