我在openshift-online上部署了我的代码。从那里我试图连接我的其他服务器(让我们说机器A在不同的网络上)我的脚本。 Machine-A在端口4444(Ubuntu 14.04)上运行openssh服务器:
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1)
include("../vendor/autoload.php");
include('Net/SSH2.php');
include('Crypt/RSA.php');
define('NET_SSH2_LOGGING', NET_SSH2_LOG_SIMPLE);
$ssh = new Net_SSH2('mywebsite.redirectme.net', 4444);
$key = new Crypt_RSA();
$key->loadKey(file_get_contents('id_rsa'));
if (!$ssh->login('myusername', $key)) {
echo $ssh->getLog();
exit('Login Failed');
}
echo $ssh->exec('pwd');
echo $ssh->exec('whoami');
echo $ssh->getLog();
?>
但它始终返回Permission denied
:
/var/lib/openshift/849bc49*************/app-root/runtime/repo/ssh/test.php on line 5 Notice: Cannot connect to myusername.redirectme.net:4444. Error 13. Permission denied in /var/lib/openshift/849bc49*************/app-root/runtime/repo/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php on line 966
openshift上该目录上的 ls -l
显示:
-rw-------. 1 849bc49************* 849bc49************* 887 Dec 28 02:05 id_rsa
-rw-------. 1 849bc49************* 849bc49************* 237 Dec 28 02:05 id_rsa.pub
首先我在机器B&amp ;;上复制了ssh密钥对。手动将其复制到计算机A上的~/.ssh/authorized-keys
。然后我将整个文件夹(使用rsa-keys和脚本)推送到openshift。
我可以使用相同的代码从机器B(在不同的netwok ...而不是localhost)上连接而没有任何问题。所以我猜测它不是真正的phpseclib或ssh-keys权限的问题。
Openshift(在线)本身是否会施加一些限制?我做错了什么?