Php 文件_get_内容不';无法使用SSH隧道

Php 文件_get_内容不';无法使用SSH隧道,php,linux,ssh,tunnel,Php,Linux,Ssh,Tunnel,我创建了一个隧道(SSH),以便访问本地PC阻止的URL。这非常有效,例如,我可以从浏览器访问此URL,我将获得预期的内容。这个URL还与我用于测试的REST客户机一起工作。但是,如果我从PHP调用它: file_get_contents('http://localhost:8888') 每次我都会遇到这个错误:打开流失败:连接被拒绝 所以我猜file\u get\u内容与SSH隧道不兼容。是否有其他函数可以用于此目的?我使用php-ssh2包解决了此问题 安装在Ubuntu 16上 使用用

我创建了一个隧道(SSH),以便访问本地PC阻止的URL。这非常有效,例如,我可以从浏览器访问此URL,我将获得预期的内容。这个URL还与我用于测试的REST客户机一起工作。但是,如果我从PHP调用它:

file_get_contents('http://localhost:8888') 
每次我都会遇到这个错误:
打开流失败:连接被拒绝


所以我猜file\u get\u内容与SSH隧道不兼容。是否有其他函数可以用于此目的?

我使用
php-ssh2
包解决了此问题

安装在Ubuntu 16上 使用用户名和密码时的用法: 使用id_rsa(在ssh拷贝id之后) 我建议使用这种方法,因为我们可能不希望在源代码中粘贴普通密码

$conn = ssh2_connect($ip, 22);
ssh2_auth_pubkey_file($conn, $user,
    "/home/{$user}/.ssh/id_rsa.pub",
    "/home/{$user}/.ssh/id_rsa", 'secret')
ssh2_scp_recv($conn, '/remote_file', '/local_file');
附加信息 此包的旧名称:libssh2 php

文件:

相关问题:

是否也有可能使用:

file_get_contents("ssh2.sftp://{$user}:{$pass}@{$ip}:22{$remote_path}"))

但是我不知道如何将它与
id\u rsa.pub

一起使用,没有理由不通过ssh隧道来运行该函数。在你的设置中肯定还有一些其他的不同。我不知道,也许是php.ini的一些调整?这没有意义。
允许在php.ini中设置url\u fopen
可能吗?我可以用文件内容打开几乎所有内容,我只有在描述中使用此url时遇到问题。是的,allow_url_fopen已打开。是否尝试使用
curl
$conn = ssh2_connect($ip, 22);
ssh2_auth_pubkey_file($conn, $user,
    "/home/{$user}/.ssh/id_rsa.pub",
    "/home/{$user}/.ssh/id_rsa", 'secret')
ssh2_scp_recv($conn, '/remote_file', '/local_file');
file_get_contents("ssh2.sftp://{$user}:{$pass}@{$ip}:22{$remote_path}"))