有没有办法在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可以访问它?