如何从PHP进行SSH? [英] How to do SSH from PHP?

查看:39
本文介绍了如何从PHP进行SSH?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个[服务器,用户名,密码]记录的数据库,我需要以编程方式通过SSH连接到这些计算机,执行远程 sudo 命令(使用 apt-get 或服务器上可用的任何东西)并检索输出(exitcode很好,但是输出就足够了).如何从PHP做到这一点?

I have a database of [server, username, password] records and I need to programatically connect to those machines via SSH, execute a remote sudo command (install some applications using apt-get or whatever is available on the server) and retrieve the output (exitcode would be nice, but output is enough). How can I do this from PHP?

推荐答案

sudo有点棘手,但 phpseclib,纯PHP SSH实现,使操作变得更加简单:

sudo is a bit tricky but phpseclib, a pure PHP SSH implementation, makes it a ton easier:

<?php
include('Net/SSH2.php');

$sftp = new Net_SSH2('www.domain.tld');
$sftp->login('username', 'password');

echo $sftp->read('username@username:~$');
$sftp->write("sudo ls -la\n");
$output = $sftp->read('#Password:|username@username:~\$#', NET_SSH2_READ_REGEX);
echo $output;
if (preg_match('#Password:#', $lines)) {
    $ssh->write("password\n");
    echo $sftp->read('username@username:~$');
}
?>

我只是从phpseclib文档中复制/粘贴了它:

I just copy / pasted that from the phpseclib docs actually:

http://phpseclib.sourceforge.net/documentation/net.html#net_ssh_sudo

这篇关于如何从PHP进行SSH?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆