【问题标题】:Using SSH via PHP with different user通过 PHP 与不同用户使用 SSH
【发布时间】:2013-08-09 21:12:32
【问题描述】:

我有一个 PHP 文件,单击提交按钮后,另一个 PHP 脚本正在执行。在第二个 PHP 脚本中,正在执行一个 shell 脚本,在该脚本中与另一台服务器建立了 SSH 连接。

我遇到的问题是与另一台服务器的 SSH 连接只能由特定用户完成。但是 PHP 脚本正在由 www-data 执行,因此我无法将用户更改为需要 ssh 连接的用户,因为它每次都需要密码。

我也尝试从第一个 PHP 文件执行 shell 脚本,但仍然没有成功。

我的操作系统是 UBUNTU。

这可以做到吗?如果可以,如何做到? 谢谢

【问题讨论】:

    标签: php shell ubuntu ssh privileges


    【解决方案1】:

    如果您拥有或可以安装 sshpass (http://sourceforge.net/projects/sshpass/),您可以尝试一下,它允许在命令行中使用用户名+密码,例如:

    https://askubuntu.com/questions/282319/how-to-use-sshpass

    【讨论】:

      【解决方案2】:

      您是如何登录的? SSH 需要用户名。您是提供 www-data 作为该用户名还是提供“特定名称”作为用户名?

      【讨论】:

      • 我正在使用另一个用户,而不是 www-data。
      【解决方案3】:

      您是否可以选择(访问和权限等)为 SSH 使用私钥/公钥?如果是,那么您的第二个 PHP 脚本将包含类似

      ssh -l <particular-username> <hostname> -i <private_key_file>
      

      【讨论】:

        【解决方案4】:

        您可以使用sudo 命令。为它传递密码,有一个-S 选项

        【讨论】:

        • 您能提供更多信息吗?我确实尝试使用 sudo 命令,但从 www-data 到我正在使用的用户仍然无法正常工作;我假设 www-data 用户是一个非常有限的用户。
        猜你喜欢
        • 1970-01-01
        • 2017-07-14
        • 2014-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-17
        • 1970-01-01
        • 2020-08-20
        相关资源
        最近更新 更多