首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHPSECLIB和SSH2

PHPSECLIB和SSH2
EN

Stack Overflow用户
提问于 2020-07-01 15:47:53
回答 1查看 1.5K关注 0票数 1

我一直在寻找关于如何使用php建立到远程服务器的连接和执行命令的解决方案。研究给我带来了两种解决方案:phpseclibssh2。我会尽量避免把我的问题变成一个比较的帖子。据我所知,它们都是广泛使用的解决方案。ssh2是一个php扩展,而phpseclib是一个纯php库。您似乎也可以将phpseclibssh2结合使用。我更倾向于避免安装扩展,所以我更倾向于使用phpseclib。不过,我确实有些担心。

ssh2有直接的php文档,这是否意味着它是一个更好的解决方案?

我看到的大多数关于phpseclib的帖子都有几年的历史了,这是否仍然是一种“现代的”解决方案?

phpseclib (在这里发现的)表示,它的创建是为了便于与php 4合作,2.0是面向php 5的。对于那些使用php 7的人来说,这是一个可接受的解决方案吗?

下面是一个使用RSA keyphpseclib 2.0建立ssh连接的示例

代码语言:javascript
复制
require __DIR__ . '/vendor/autoload.php';

use phpseclib\Net\SSH2;
use phpseclib\Crypt\RSA;

$ssh = new SSH2('www.domain.tld');
$key = new RSA();
$key->loadKey(file_get_contents('privatekey'));
if (!$ssh->login('username', $key)) {
    exit('Login Failed');
}

echo $ssh->exec('pwd');

我对ssh还是相当陌生的,但是如果我正确地理解了上面的内容,只要远程服务器有一个.pub密钥,我就可以简单地用本地私钥(和用户)提供我的连接,并且我应该能够连接?公钥需要在某个特定的地方吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-01 16:33:43

理论上讲,phpseclib 1.0适用于PHP4.4,但是phpseclib 2.0需要PHP 5.3+。3.0需要5.6+。所有版本的phpseclib都通过PHP7.4工作,从Travis CI测试结果中可以看到:

https://travis-ci.org/github/phpseclib/phpseclib

( PHP的旧版本没有进行单元测试,因为Travis CI不支持它们;Docker容器可以使用,但是是的)

我对ssh还是相当陌生的,但是如果我正确地理解了上面的内容,只要远程服务器有一个.pub密钥,我就可以简单地用本地私钥(和用户)提供我的连接,并且我应该能够连接?公钥需要在某个特定的地方吗?

对于OpenSSH服务器,公钥需要驻留在~/..ssh/authorized_ key中。在客户端,你真正需要的就是私钥。可以从私钥中提取公钥。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62680582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档