如何让ssh-agent访问由php-data(apache)执行的php脚本?

时间:2017-10-16 11:18:07

标签: php apache ssh

有没有办法在ssh-agent上提供www-data(apache)访问?我有一个简单的php(cli)脚本,只需连接远程ssh服务器并运行一个简单的命令。在CLI上我首先启动ssh-agent并加载我用密码保护的密钥。

加载代理键:

# eval $(ssh-agent -s)
# ssh-add /root/.ssh/id_rsa

PHP CLI脚本:

#!/usr/bin/php
<?php

$connection = ssh2_connect('host', 22);

if (ssh2_auth_agent($connection, 'username')) {
  echo "Authentication Successful!\n";
} else {
  die('Authentication Failed...');
}

$stream = ssh2_exec($connection, 'sh int status');
stream_set_blocking($stream, true);
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);

echo stream_get_contents($stream_out);

在CLI上运行正常,但是当我在apache下运行上面的代码片段时,我无法在远程ssh主机上进行身份验证。我认为问题是,php / apache无法访问ssh-agent。

我的问题:有没有办法启动ssh-agent并为apache加载密钥,以便apache可以访问它?

0 个答案:

没有答案