如何从PHP进行SSH? [英] How to do SSH from PHP?
问题描述
我有一个[服务器,用户名,密码]记录的数据库,我需要以编程方式通过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屋!