Heim php教程 php手册 php远程copy以及执行命令

php远程copy以及执行命令

Jun 13, 2016 am 10:55 AM
php 命令 existieren 执行 文件 Stunde 服务器 远程

php远程copy文件以及在远程服务器中执行命令时,所用到的模块是ssh2,以后所有的操作都依据ssh2连接句柄完成。


1. SSH2模块的安装
1.1 安装需要的扩展包

[plain] 
wget   
tar zxf libssh2-1.4.2.tar.gz 
cd libssh2-1.4.2 
./configure && make && make install 

wget   
tar zxf libssh2-1.4.2.tar.gz
cd libssh2-1.4.2
./configure && make && make install

[plain]
wget   
cd ssh2-0.11.3 
phpize   (如果报错命令没有找到,apt-get install php5-dev) 
./configure —with-ssh2 && make && make install 

wget 
cd ssh2-0.11.3
phpize   (如果报错命令没有找到,apt-get install php5-dev)
./configure —with-ssh2 && make && make install
1.2 修改php配置信息

[plain] 
cd  /etc/php5/cgi 
vim  php.ini 
添加项:extension=/usr/lib/php5/20090626/ssh2.so 
     ssh2.so是编译ssh2时得到的模块,上面是模块的位置。 

cd  /etc/php5/cgi
vim  php.ini
添加项:extension=/usr/lib/php5/20090626/ssh2.so
     ssh2.so是编译ssh2时得到的模块,上面是模块的位置。

[plain] 
cd  /etc/php5/cli 
vim  php.ini 
添加项:extension=/usr/lib/php5/20090626/ssh2.so 
     ssh2.so是编译ssh2时得到的模块,上面是模块的位置。 

cd  /etc/php5/cli
vim  php.ini
添加项:extension=/usr/lib/php5/20090626/ssh2.so
     ssh2.so是编译ssh2时得到的模块,上面是模块的位置。
1.3 重启web服务器

[plain] 
/etc/init.d/lighttpd restart 

/etc/init.d/lighttpd restart
1.4 查看是否加载了ssh2

[plain] 
[root@localhost ~]php -m | grep ssh2 
ssh2 

[root@localhost ~]php -m | grep ssh2
ssh22. SSH2模块的连接应用
SSH2连接有两种方式,分别是用户名密码,ssh密钥形式。

2.1 用户名与密码

[php]
$connection = ssh2_connect("192.168.6.222",22); 
if (ssh2_auth_password($connection,"veno","ubuntu")) 

         echo "Authentication Successful! "; 
}else{ 
         die("Authentication Failed..."); 

$connection = ssh2_connect("192.168.6.222",22);
if (ssh2_auth_password($connection,"veno","ubuntu"))
{
       echo "Authentication Successful! ";
}else{
       die("Authentication Failed...");
}
2.2 ssh密钥

[php] 
$connection = ssh2_connect('192.168.6.222', 22, array('hostkey'=>'ssh-rsa')); 
if (ssh2_auth_pubkey_file($connection, 'root', 
                          '/root/.ssh/id_rsa.pub', 
                          '/root/.ssh/id_rsa')) 

   echo "Public Key Authentication Successful\n"; 
} else { 
     echo ('Public Key Authentication Failed'); 

$connection = ssh2_connect('192.168.6.222', 22, array('hostkey'=>'ssh-rsa'));
if (ssh2_auth_pubkey_file($connection, 'root',
                          '/root/.ssh/id_rsa.pub',
                          '/root/.ssh/id_rsa'))
{
   echo "Public Key Authentication Successful\n";
} else {
   echo ('Public Key Authentication Failed');
}

Ps: 密钥生成:

在服务器192.168.6.229上面以root登录


[plain] 
#ssh-keygen 

#ssh-keygen
有什么提问基本上回车即可

后成的公钥在~/.ssh/id_rsa.pub

如果想在229通过密钥验证登录到222上面,则把229的公钥id_rsa.pub cp到222上面,先手动登录root,然后运行:


[plain] 
cat id_rsa.pub >> ~/.ssh/authorized_keys 

cat id_rsa.pub >> ~/.ssh/authorized_keys
这样就可以在229上面ssh 192.168.6.229不需要输入密码即可登录到222。上面php代码在229上面也可以通过验证。

 

3. SSH2模块的具体应用
通过SSH2验证通过后,得到的连接符为$connection

3.1 实现远程copy文件
远程服务器文件copy到本地:

bool ssh2_scp_recv ( resource $session, string $remote_file, string $local_file )

Ps: 接收文件时,后面文件名可以为空,如:


[php] 
ssh2_scp_recv($connection, '/home/xiaozl/veno1.exe', '/home/xiaozl/') 

ssh2_scp_recv($connection, '/home/xiaozl/veno1.exe', '/home/xiaozl/')

 

本地文件copy到远程服务器

bool ssh2_scp_send ( resource $session, string $local_file, string $remote_file [, int $create_mode] )

Ps:发送文件时,后面的文件名不能为空,如:

[php]
ssh2_scp_send($connection, '/home/xiaozl/package.xml', '/home/xiaozl/package.xml'); 

ssh2_scp_send($connection, '/home/xiaozl/package.xml', '/home/xiaozl/package.xml');
 

3.2 执行远程服务器上的命令并取返回值
resource ssh2_exec( resource $session, string $command [, string $pty [, array $env [, int $width [, int $height [, int $width_height_type]]]]] )

在229上面执行222上的命令具体实例:


[php] 
$tcmd="cd /home/veno/gateway/radiusclient;"; 
$tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d"; 
$stream = ssh2_exec($connection, $tcmd); 
stream_set_blocking($stream,true); 
echo stream_get_contents($stream);  

$tcmd="cd /home/veno/gateway/radiusclient;";
$tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d";
$stream = ssh2_exec($connection, $tcmd);
stream_set_blocking($stream,true);
echo stream_get_contents($stream);
附件:测试中应用到的php代码
[php]
echo "是访问到这里来了"; 
$connection = ssh2_connect('192.168.6.222', 22, array('hostkey'=>'ssh-rsa')); 
if (ssh2_auth_pubkey_file($connection, 'root', 
                          '/root/.ssh/id_rsa.pub', 
                          '/root/.ssh/id_rsa')) 

  echo "Public Key Authentication Successful\n"; 
  //$flag=ssh2_scp_recv($connection, '/home/xiaozl/veno1.exe', '/home/xiaozl/');  
  //接收时,后面文件名可以为空  
  //$flag=ssh2_scp_send($connection, '/home/xiaozl/package.xml', '/home/xiaozl/package.xml');  
  //发送时,后面的文件名不能为空  
  //echo $flag;  
  $tcmd="cd /home/veno/gateway/radiusclient;"; 
  $tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d"; 
  $stream = ssh2_exec($connection, $tcmd); 
  stream_set_blocking($stream,true); 
  echo stream_get_contents($stream);  
} else { 
  echo ('Public Key Authentication Failed'); 

echo "
"; 
$connection = ssh2_connect('192.168.6.222', 22); 
ssh2_auth_password($connection, 'veno', '*******'); 
$tcmd="cd /home/veno/gateway/radiusclient;"; 
  $tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d"; 
  $stream = ssh2_exec($connection, $tcmd); 
  echo "
"; 
  echo "-----------------------------------------------"; 
  stream_set_blocking($stream,true); 
  echo stream_get_contents($stream);  
  echo "-----------------------------------------------"; 
echo "
"; 

echo "是访问到这里来了";
$connection = ssh2_connect('192.168.6.222', 22, array('hostkey'=>'ssh-rsa'));
if (ssh2_auth_pubkey_file($connection, 'root',
                          '/root/.ssh/id_rsa.pub',
                          '/root/.ssh/id_rsa'))
{
  echo "Public Key Authentication Successful\n";
  //$flag=ssh2_scp_recv($connection, '/home/xiaozl/veno1.exe', '/home/xiaozl/');
  //接收时,后面文件名可以为空
  //$flag=ssh2_scp_send($connection, '/home/xiaozl/package.xml', '/home/xiaozl/package.xml');
  //发送时,后面的文件名不能为空
  //echo $flag;
  $tcmd="cd /home/veno/gateway/radiusclient;";
  $tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d";
  $stream = ssh2_exec($connection, $tcmd);
  stream_set_blocking($stream,true);
  echo stream_get_contents($stream);
} else {
  echo ('Public Key Authentication Failed');
}
echo "
";
$connection = ssh2_connect('192.168.6.222', 22);
ssh2_auth_password($connection, 'veno', '*******');
$tcmd="cd /home/veno/gateway/radiusclient;";
  $tcmd.="./nastool.sh get-status app=2b1c5364-db39-c76d-842c-11d4a81d555d";
  $stream = ssh2_exec($connection, $tcmd);
  echo "
";
  echo "-----------------------------------------------";
  stream_set_blocking($stream,true);
  echo stream_get_contents($stream);
  echo "-----------------------------------------------";
echo "
";


 

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
<🎜> obscur: Expedition 33 - So erhalten Sie perfekte Chroma -Katalysatoren
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1677
14
PHP-Tutorial
1278
29
C#-Tutorial
1257
24
PHP und Python: Verschiedene Paradigmen erklärt PHP und Python: Verschiedene Paradigmen erklärt Apr 18, 2025 am 12:26 AM

PHP ist hauptsächlich prozedurale Programmierung, unterstützt aber auch die objektorientierte Programmierung (OOP). Python unterstützt eine Vielzahl von Paradigmen, einschließlich OOP, funktionaler und prozeduraler Programmierung. PHP ist für die Webentwicklung geeignet, und Python eignet sich für eine Vielzahl von Anwendungen wie Datenanalyse und maschinelles Lernen.

Wählen Sie zwischen PHP und Python: Ein Leitfaden Wählen Sie zwischen PHP und Python: Ein Leitfaden Apr 18, 2025 am 12:24 AM

PHP eignet sich für Webentwicklung und schnelles Prototyping, und Python eignet sich für Datenwissenschaft und maschinelles Lernen. 1.PHP wird für die dynamische Webentwicklung verwendet, mit einfacher Syntax und für schnelle Entwicklung geeignet. 2. Python hat eine kurze Syntax, ist für mehrere Felder geeignet und ein starkes Bibliotheksökosystem.

PHP und Python: Ein tiefes Eintauchen in ihre Geschichte PHP und Python: Ein tiefes Eintauchen in ihre Geschichte Apr 18, 2025 am 12:25 AM

PHP entstand 1994 und wurde von Rasmuslerdorf entwickelt. Es wurde ursprünglich verwendet, um Website-Besucher zu verfolgen und sich nach und nach zu einer serverseitigen Skriptsprache entwickelt und in der Webentwicklung häufig verwendet. Python wurde Ende der 1980er Jahre von Guidovan Rossum entwickelt und erstmals 1991 veröffentlicht. Es betont die Lesbarkeit und Einfachheit der Code und ist für wissenschaftliche Computer, Datenanalysen und andere Bereiche geeignet.

Warum PHP verwenden? Vorteile und Vorteile erläutert Warum PHP verwenden? Vorteile und Vorteile erläutert Apr 16, 2025 am 12:16 AM

Zu den Kernvorteilen von PHP gehören einfacher Lernen, starke Unterstützung für Webentwicklung, reiche Bibliotheken und Rahmenbedingungen, hohe Leistung und Skalierbarkeit, plattformübergreifende Kompatibilität und Kosteneffizienz. 1) leicht zu erlernen und zu bedienen, geeignet für Anfänger; 2) gute Integration in Webserver und unterstützt mehrere Datenbanken. 3) leistungsstarke Frameworks wie Laravel; 4) hohe Leistung kann durch Optimierung erzielt werden; 5) mehrere Betriebssysteme unterstützen; 6) Open Source, um die Entwicklungskosten zu senken.

Auswirkungen von PHP: Webentwicklung und darüber hinaus Auswirkungen von PHP: Webentwicklung und darüber hinaus Apr 18, 2025 am 12:10 AM

PhPhas significantantyPactedWebDevelopmentAndendendsbeyondit.1) iTpowersMAjorPlatforms-LikewordpressandExcelsInDatabaseInteractions.2) php'SadaptabilityAllowStoscaleForLargeApplicationsfraMe-Linien-Linien-Linien-Linienkripte

PHP vs. Python: Anwendungsfälle und Anwendungen PHP vs. Python: Anwendungsfälle und Anwendungen Apr 17, 2025 am 12:23 AM

PHP eignet sich für Webentwicklungs- und Content -Management -Systeme, und Python eignet sich für Datenwissenschafts-, maschinelles Lernen- und Automatisierungsskripte. 1.PHP hat eine gute Leistung beim Erstellen von schnellen und skalierbaren Websites und Anwendungen und wird üblicherweise in CMS wie WordPress verwendet. 2. Python hat sich in den Bereichen Datenwissenschaft und maschinelles Lernen mit reichen Bibliotheken wie Numpy und TensorFlow übertrifft.

Die fortgesetzte Verwendung von PHP: Gründe für seine Ausdauer Die fortgesetzte Verwendung von PHP: Gründe für seine Ausdauer Apr 19, 2025 am 12:23 AM

Was noch beliebt ist, ist die Benutzerfreundlichkeit, die Flexibilität und ein starkes Ökosystem. 1) Benutzerfreundliche und einfache Syntax machen es zur ersten Wahl für Anfänger. 2) eng integriert in die Webentwicklung, eine hervorragende Interaktion mit HTTP -Anforderungen und Datenbank. 3) Das riesige Ökosystem bietet eine Fülle von Werkzeugen und Bibliotheken. 4) Active Community und Open Source Nature passen sie an neue Bedürfnisse und Technologietrends an.

PHP: Eine Einführung in die serverseitige Skriptsprache PHP: Eine Einführung in die serverseitige Skriptsprache Apr 16, 2025 am 12:18 AM

PHP ist eine serverseitige Skriptsprache, die für dynamische Webentwicklung und serverseitige Anwendungen verwendet wird. 1.PHP ist eine interpretierte Sprache, die keine Zusammenstellung erfordert und für die schnelle Entwicklung geeignet ist. 2. PHP -Code ist in HTML eingebettet, wodurch es einfach ist, Webseiten zu entwickeln. 3. PHP verarbeitet die serverseitige Logik, generiert die HTML-Ausgabe und unterstützt Benutzerinteraktion und Datenverarbeitung. 4. PHP kann mit der Datenbank interagieren, die Einreichung von Prozessformularen und serverseitige Aufgaben ausführen.

See all articles