php远路copy以及执行命令
php远程copy以及执行命令
php远程copy以及执行命令
php远程copy文件以及在远程服务器中执行命令时,所用到的模块是ssh2,以后所有的操作都依据ssh2连接句柄完成。
1. SSH2模块的安装
1.1 安装需要的扩展包
wget http://www.libssh2.org/download/libssh2-1.4.2.tar.gz tar zxf libssh2-1.4.2.tar.gz cd libssh2-1.4.2 ./configure && make && make install
wget http://pecl.php.net/get/ssh2-0.11.3.tgz cd ssh2-0.11.3 phpize (如果报错命令没有找到,apt-get install php5-dev) ./configure ―with-ssh2 && make && make install
1.2 修改php配置信息
cd /etc/php5/cgi 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服务器
/etc/init.d/lighttpd restart
1.4 查看是否加载了ssh2
[root@localhost ~]php -m | grep ssh2 ssh2
2. SSH2模块的连接应用
SSH2连接有两种方式,分别是用户名密码,ssh密钥形式。
2.1 用户名与密码
$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密钥
$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登录
#ssh-keygen
有什么提问基本上回车即可
后成的公钥在~/.ssh/id_rsa.pub
如果想在229通过密钥验证登录到222上面,则把229的公钥id_rsa.pub cp到222上面,先手动登录root,然后运行:
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: 接收文件时,后面文件名可以为空,如:
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:发送文件时,后面的文件名不能为空,如:
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上的命令具体实例:
$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 "<br>"; $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 "<br>"; echo "-----------------------------------------------"; stream_set_blocking($stream,true); echo stream_get_contents($stream); echo "-----------------------------------------------"; echo "<br>";

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds




![Tutoriel complet Telnet dans Windows 11 [Installation/Activation et dépannage]](https://img.php.cn/upload/article/000/000/164/168476253791019.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
<p>Telnet est l'abréviation de « Terminal Network ». Il s'agit d'un protocole que les utilisateurs peuvent utiliser pour connecter un ordinateur à un ordinateur local. </p><p>Ici, l'ordinateur local fait référence au périphérique qui initie la connexion, et l'ordinateur connecté à l'ordinateur local est appelé l'ordinateur distant. </p><p>Telnet fonctionne sur un principal client/serveur, et bien qu'il soit obsolète, il est encore utilisé par de nombreuses personnes en 2022. De nombreuses personnes sont déjà passées au système d'exploitation Windows 11, qui est le dernier système d'exploitation proposé par Microsoft. &

Avec le développement du cloud computing et de l’Internet des objets, l’exploitation à distance des serveurs est devenue de plus en plus importante. En Python, nous pouvons utiliser le module Paramiko pour implémenter facilement des opérations à distance SSH. Dans cet article, nous présenterons l'utilisation de base de Paramiko et comment utiliser Paramiko en Python pour gérer des serveurs à distance. Qu'est-ce que Paramiko Paramiko est un module Python pour SSHv1 et SSHv2 qui peut être utilisé pour connecter et contrôler les clients SSH.

Pour la plupart des utilisateurs de Windows, le protocole RDP (Remote Desktop Protocol) a toujours été le premier choix pour la gestion à distance car il offre une interface graphique conviviale. Toutefois, pour les administrateurs système qui nécessitent un contrôle plus granulaire, SSH peut mieux répondre à leurs besoins. Grâce à SSH, les administrateurs peuvent interagir avec des appareils distants via la ligne de commande, ce qui peut rendre le travail de gestion plus efficace. L'avantage de SSH réside dans sa sécurité et sa flexibilité, permettant aux administrateurs d'effectuer plus facilement des travaux de gestion et de maintenance à distance, en particulier lorsqu'ils traitent un grand nombre d'appareils ou effectuent des tâches automatisées. Ainsi, même si RDP excelle en termes de convivialité, pour les administrateurs système, SSH est supérieur en termes de puissance et de contrôle. Auparavant, les utilisateurs de Windows devaient emprunter

CONNECTION_REFUSED est une erreur de connexion réseau qui se produit généralement lors de la tentative de connexion à un serveur distant. Lorsqu'un appareil client tente d'établir une connexion réseau avec un serveur et que le serveur rejette la demande de connexion, une erreur CONNECTION_REFUSED est renvoyée. Les raisons courantes incluent : le serveur n'est pas démarré, le serveur ne peut pas accepter plus de demandes de connexion, le pare-feu du serveur bloque la connexion, etc.

Solution : 1. Vérifiez la connexion réseau ; 2. Vérifiez l'état du serveur ; 3. Effacez le cache et les cookies ; 4. Vérifiez les paramètres du pare-feu et du logiciel de sécurité ; 5. Essayez d'utiliser d'autres réseaux, etc.

1. Objectif de la confiance mutuelle ssh 1. La confiance mutuelle SSH est requise lors de la création d'un cluster, ce qui favorise un fonctionnement pratique sur un autre nœud. 2. Lorsque vous utilisez l'opération de copie à distance scp, vous devez saisir le nom d'utilisateur et le mot de passe du serveur cible. À ce stade, vous pouvez configurer la confiance mutuelle SSH entre les serveurs Linux, afin de pouvoir vous connecter sans mot de passe lorsque vous travaillez entre plusieurs. Serveurs Linux. 2. Le principe de configuration de la confiance mutuelle ssh En bref, le serveur stocke le certificat de l'hôte cible afin que l'authentification puisse s'effectuer automatiquement sans saisir de mot de passe. 3. Étapes de configuration de la confiance mutuelle SSH 1. Chaque nœud génère sa propre paire de clés publique et privée. 2. Envoyez votre fichier de clé publique à l'autre partie. 3. Vérifiez si la configuration de la confiance mutuelle réussit. 4. Configurez ici la confiance mutuelle ssh avec MYDB01 et

Contexte Si vous devez accéder à la base de données Mysql d'un serveur distant, mais pendant la période de sécurité de la base de données Mysql, les mesures de sécurité sont définies pour autoriser uniquement les connexions locales (c'est-à-dire que vous devez vous connecter au serveur pour l'utiliser) , et les autres connexions à distance ne sont pas accessibles directement, et le port correspondant a également été modifié, vous devez donc vous connecter à la base de données basée sur ssh. La connexion à la base de données de cette manière est la même que l'interface de Navicat basée sur la connexion ssh. Navicat se connecte à la bibliothèque de support d'installation de la base de données Si vous souhaitez vous connecter à Mysql, vous devez d'abord installer pymysqlpipinstallpymysql pour installer la bibliothèque basée sur ssh sshtunnelpipinstallsshtunnel#.

CentOS7.9 est une version du système d'exploitation très couramment utilisée lors de la création de serveurs ou de la gestion du système. Cet article vous fournira des étapes et des instructions détaillées pour installer CentOS7.9 et installer SSH. CentOS7.9 est un système d'exploitation Linux gratuit et open source. Il s'agit d'une version compatible binaire basée sur Red Hat Enterprise Linux (RHEL). Voici les étapes pour installer CentOS7.9 : 1. Vous devez télécharger le fichier image ISO. de CentOS7.9 Vous pouvez le télécharger à partir de Téléchargez le dernier fichier image ISO CentOS7.9 sur le site officiel de CentOS. 2. Créez une nouvelle machine virtuelle ou physique sur votre ordinateur et installez
