php - 如何使用 ssh2_publickey_add 添加公钥

标签 php linux ubuntu ssh ssh-keys

我想创建一个可以使用 PHP 登录 SSH 的系统。
首先,运行此命令以生成 key :

$process = shell_exec("ssh-keygen -q -N '' -f $this->fullPath -C 'JY-Forge'");
然后我想使用 ssh2_publickey_add 将该公钥复制到服务器。 .
这是我的代码
$this->connection = ssh2_connect($param['server_host'], 22);
ssh2_auth_password($this->connection, $param['superuser'], $param['superuser_password']);
$pkey = ssh2_publickey_init($this->connection);
$send = ssh2_publickey_add($pkey, 'ssh-rsa', $param['key'], false, array("comment" => "JY-Forge"));
但是,当我运行程序时出现错误:

ssh2_publickey_init(): Unable to initialize publickey subsystem(0)


我在这里使用virtualbox,而不是真正的服务器..
我是不是忘记了什么?

最佳答案

虽然确实有 RFC 4819对于“公钥” SSH 子系统,它没有被广泛采用。
值得注意的是,最广泛使用的 SSH 服务器 OpenSSH 不支持它。所以你几乎无法使用它。
例如,子系统是 supported by Vandyke VShell (since 2.3) .

关于php - 如何使用 ssh2_publickey_add 添加公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62608395/

相关文章:

php - 使用 redis 驱动程序时如何更改 Laravel 4 的连接信息?

php - 仅限管理员的导航小部件

php - 为什么我的推进级联被外键约束阻止?

php - 从 PHP 数组中删除第一个值

ios - 在没有macOS的情况下开发IOS应用

c - gdb: 未定义的输出格式 "z"

c - 从函数指针中减去 1

java - tomcat 未在 ubuntu 16.04LTS 的 aws ec2 实例上的端口 80 上运行

linux - 安装/升级到 python 3.4.3 时出错

c - 套接字错误 : connection refused