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