gpt4 book ai didi

PHPSECLIB 和 SSH2

转载 作者:行者123 更新时间:2023-12-02 14:26:52 26 4
gpt4 key购买 nike

我一直在寻找如何使用 php 的解决方案建立与远程服务器的连接并执行命令。研究使我注意到了两种解决方案; phpseclibssh2 .我会尽量不让我的问题变成比较帖子。据我所知,它们都是广泛使用的解决方案。 ssh2是一个 php 扩展,而 phpseclib是一个纯 php 库。看来你也可以用phpseclib结合 ssh2 .我更愿意避免安装扩展,所以我更倾向于使用 phpseclib .不过我确实有些担心。ssh2php 的直接文档这是否意味着它是一个更好的解决方案?
我看到的大多数关于 phpseclib 的帖子几年了,这仍然是一个“现代”的解决方案吗?phpseclib ( found here ) 表示它是为与 php 4 兼容而构建的与 2.0面向php 5 .对于使用 php 7 的人来说,这是一个可以接受的解决方案吗? ?
这是一个使用 RSA key 的示例建立sshphpseclib 2.0 的联系

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 key 我可以简单地提供我的本地私钥(和用户)的连接,我应该能够连接吗?公钥是否需要在某个特定的地方?

最佳答案

phpseclib 1.0 理论上适用于 PHP 4.4,但 phpseclib 2.0 需要 PHP 5.3+。 3.0 需要 5.6+。从 Travis CI 测试结果可以看出,所有版本的 phpseclib 都可以一直工作到 PHP 7.4:
https://travis-ci.org/github/phpseclib/phpseclib
(旧版本的 PHP 没有经过单元测试,因为 Travis CI 不支持它们;可以使用 Docker 容器,但是是的)

I am still fairly new to ssh but if I understand the above correctly, so long as the remote server has a .pub key I can simply supply my connection with my local private key (and user) and I should be able to connect? Does the public key need to be somewhere specific?


使用 OpenSSH 服务器,公钥需要保存在 ~/.ssh/authorized_keys 中。在客户端,您真正需要的只是私钥。公钥可以从私钥中提取。

关于PHPSECLIB 和 SSH2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62680582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com