“通过pyhton脚本调用ProxyCommand时没有此类文件或目录

问题描述 投票:0回答:1

这是我非常简单的代码,旨在通过端口8888上的本地socks代理连接到ssh服务器

    import subprocess  
    host = 'X.x.X.x'
    port = 22
    subprocess.call(  [
      "ssh", 
      "-o", "ProxyCommand='/bin/socat - SOCKS4A:127.0.0.1:%h:%p,socksport=8888'",
      "-p", "{}".format(port),
      "root@{}".format(host)
    ])

但是,在尝试执行时,我收到了一条难看的错误消息。

    /bin/bash: /bin/socat - SOCKS4A:127.0.0.1:X.x.X.x:22,socksport=8888: No such file or directory
    ssh_exchange_identification: Connection closed by remote host

什么是trange,当直接将完整的命令行复制粘贴到外壳上时,这是可行的。

python ssh subprocess socat
1个回答
0
投票
有点晚了,但是使用execvp运行时我遇到了同样的问题。您需要删除ProxyCommand周围的引号,例如
© www.soinside.com 2019 - 2024. All rights reserved.