我想创建一个可以使用 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/