Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自Web服务器的无密码ssh_Ssh_Lampp - Fatal编程技术网

来自Web服务器的无密码ssh

来自Web服务器的无密码ssh,ssh,lampp,Ssh,Lampp,我有一个虚拟的Ubuntu机器(13.04),我现在可以用它来ssh到一个虚拟的OpenWrt机器。使用无密码SSH没有问题,因为我设置了密钥 Ubuntu机器上还有一个web服务器(使用Apache的XAMPP/LAMPP包),我在其中有一个PHP页面,使用shell\u exec()在命令行上运行SSH脚本 但是Web服务器没有与Ubuntu用户相同的权限,因为当我从Web服务器运行脚本时,它会要求输入密码(在弹出框中) 我是否可以用与Ubuntu机器相同的方式为Web服务器创建密钥 我寻找

我有一个虚拟的Ubuntu机器(13.04),我现在可以用它来ssh到一个虚拟的OpenWrt机器。使用无密码SSH没有问题,因为我设置了密钥

Ubuntu机器上还有一个web服务器(使用Apache的XAMPP/LAMPP包),我在其中有一个PHP页面,使用
shell\u exec()
在命令行上运行SSH脚本

但是Web服务器没有与Ubuntu用户相同的权限,因为当我从Web服务器运行脚本时,它会要求输入密码(在弹出框中)

我是否可以用与Ubuntu机器相同的方式为Web服务器创建密钥

我寻找了一个可以在命令行中使用的Apache用户,但据我所知,Apache使用了一个守护进程(我基本上不了解)


这可能吗?

是的,可能。最简单的方法大概是这样

  • 在ubuntu中,以任何用户的身份生成一个新密钥(ssh-keygen)
  • 在openwrt服务器上注册密钥
  • 检查钥匙是否工作
  • 在ubuntu中,将密钥移动到一个合理的位置(
    /var/www
    ,如果它没有用作docroot,或
    /etc/
    /srv
    下的某个位置),并将其传送给apache用户(
    www-data
    可能)
  • shell\u exec
    中,连接时使用
    ssh-i$KEYFILE