我有ssh,我想用于cURL。
这是我的代码
<?php
$server = '123.456.789.012';
$port = 22;
$user = 'root';
$pass = '123456';
$connection = ssh2_connect($ip, $port, $methods, $callbacks);
if (!$connection) die('Connection failed');
$auth = ssh2_auth_password ($connection, $user, $pass);
$tunnel = ssh2_tunnel($connection, '127.0.0.1', 1080);
if(!$tunnel) die('error');
$url = 'http://dynupdate.no-ip.com/ip.php';
$proxy = '127.0.0.1:1080';
//$proxyauth = 'user:password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
//curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
echo "ok ".$curl_scraped_page;
?>
我正在使用CentOS os
谁可以帮助我
答案 0 :(得分:0)
Curl主要用于与web相关的查询,我不确定如果你将它用于ssh,curl会回复任何响应。我看到你的代码,似乎你没有做任何事只是尝试通过ssh登录并返回。但是,如果要在ssh登录后运行某些命令,可以使用ssh命令。如果你想复制一些文件,你也可以使用scp。因此,当您通过curl进行SSH连接时,请准确地告诉我您要实现的目标。
答案 1 :(得分:0)
libssh2是一个客户端。要让ssh2_tunnel
按照您的代码所期望的方式行事,必须在127.0.0.1::1080启动服务器。而不仅仅是服务器而是SOCKS5服务器。
这里是如何使用ssh2_tunnel的:
$tunnel = ssh2_tunnel($connection, '127.0.0.1', 1080);
fputs($tunnel, "GET / HTTP/1.0\r\nHost: www.domain.tld\r\n\r\n");
while (true) {
echo fgets($tunnel, 1024);
}