【发布时间】:2022-01-22 09:33:20
【问题描述】:
我尝试了https://sourceforge.net/projects/phpseclib/,但没有成功。 所以如果有人知道其他方法,我会很高兴
在 cmd 上使用此命令可以连接,但我希望它在 PHP 上:
sshpass -p 密码 sftp -c aes128-cbc -i ~/dir_to_id_rsa.ppk -P 2222 user@host
PHP 5.6.3
【问题讨论】:
我尝试了https://sourceforge.net/projects/phpseclib/,但没有成功。 所以如果有人知道其他方法,我会很高兴
在 cmd 上使用此命令可以连接,但我希望它在 PHP 上:
sshpass -p 密码 sftp -c aes128-cbc -i ~/dir_to_id_rsa.ppk -P 2222 user@host
PHP 5.6.3
【问题讨论】:
我建议您使用 phpseclib v3,它可通过 Composer 安装并适用于 PHP 5.6。示例:
<?php
require __DIR__ . '/vendor/autoload.php';
use phpseclib3\Net\SSH2;
use phpseclib3\Crypt\PublicKeyLoader;
$key = PublicKeyLoader::load(file_get_contents('privatekey'));
$ssh = new SSH2('localhost');
if (!$ssh->login('username', 'password', $key)) {
throw new \Exception('Login failed');
}
如果您使用的是 phpseclib v1,那么除非您使用的是最新的 git 版本的 phpseclib,否则您拥有相关密钥和密码的顺序。
无论如何,我会说发布您的 phpseclib 代码,我可以帮助您。
【讨论】:
composer install,然后您的 Web 服务器正在运行。 phpseclib.com/docs/install 更详细地讨论了这个一般策略。也就是说,github.com/phpseclib/phpseclib/releases/download/3.0.12/… 刚刚添加到 phpseclib 3.0.12 版本中。试试看,看看它是否适合你。请务必在文件顶部输入require __DIR__ . '/vendor/autoload.php';。