Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Tor代理的Python ssh_Python_Ssh_Paramiko_Tor - Fatal编程技术网

使用Tor代理的Python ssh

使用Tor代理的Python ssh,python,ssh,paramiko,tor,Python,Ssh,Paramiko,Tor,当我从Python脚本使用ssh时,我希望能够通过Tor发送数据。当我使用OpenSSH客户机手动ssh到主机时,Tor可以正常工作。这是我的ssh配置文件。我使用connect proxy命令和connect proxy代理通过Tor路由连接(同样,通过标准OpenSSH客户端也可以正常工作): 我有一个Python测试脚本: import paraproxy import paramiko conf = paramiko.SSHConfig() conf.parse(open('/home

当我从Python脚本使用ssh时,我希望能够通过Tor发送数据。当我使用OpenSSH客户机手动ssh到主机时,Tor可以正常工作。这是我的ssh配置文件。我使用connect proxy命令和connect proxy代理通过Tor路由连接(同样,通过标准OpenSSH客户端也可以正常工作):

我有一个Python测试脚本:

import paraproxy
import paramiko

conf = paramiko.SSHConfig()
conf.parse(open('/home/user/.ssh/config'))
host = conf.lookup('host')
print host

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(host["hostname"], username=host["user"], password='test')
client.close()

此脚本不会将ssh发送到主机,但是,它不使用ssh配置文件中的PROXY命令,因此它不会通过Tor路由流量。我尝试了几种不同的配置,但无法使其正常工作。你有什么想法可以让它工作吗

您需要创建
ProxyCommand
(类似套接字的对象)并将其传递给
client.connect()


。注意
超时
参数。如果您正在执行一些自动化操作,那么最好指定它。

您是否确实尝试过运行该代码?你试的时候有用吗?是的。但是我是通过ssh进行poxying的:
proxycommandshuser@proxy.host.tldnc%h%p
这是有效的。我错过了不使用paraproxy的部分。它不适用于导入的。我试图给你投赞成票,但不小心给你投了反对票。但我接受这个答案。谢谢。我的否决票已锁定,我无法更改。但是,如果你对答案做了一个小的编辑,那么我可以投票给你的答案。谢谢你的提示!用(我认为)有用的信息更新了答案;)
import paraproxy
import paramiko

conf = paramiko.SSHConfig()
conf.parse(open('/home/user/.ssh/config'))
host = conf.lookup('host')
print host

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(host["hostname"], username=host["user"], password='test')
client.close()
import paramiko

conf = paramiko.SSHConfig()
conf.parse(open('/home/user/.ssh/config'))
host = conf.lookup('host')
print host

proxy = paramiko.ProxyCommand(host['proxycommand'])

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(host["hostname"], username=host["user"], password='test', sock=proxy)
client.close()