ssh2扩展执行远程登录命令以及执行多个命令

原创 2017年09月03日 23:19:04

简介

使用ssh2模块实现远程登录执行命令:

使用php ssh2模块可以在程序中远程执行命令,可以编写一些简单的脚本工具,实现集中管理

安装

1,安装libssh2库

从 http://www.libssh2.org/ 下载源代码安装即可。

2,安装ssh2模块

从 http://pecl.php.net/package/ssh2 下载源代码包,安装步骤:

/usr/local/php/bin/phpize

./configure --with-ssh2 && make

cp .libs/ssh2.so /data/php/lib/php/extensions/no-debug-non-zts-20060613/

修改 php.ini 增加 extension=ssh2.so

3,示例

$conn = ssh2_connect('192.168.1.2',22);

ssh2_auth_password($conn,usesrname,password);

$stream = ssh2_exec($conn, '/usr/local/bin/php -i');

stream_set_blocking($stream,true);

echo (stream_get_contents($stream));


$stream = ssh2_exec($conn,'ls');

stream_set_blocking($stream,true);

echo (stream_get_contents($stream));


ssh2的使用方式:

$connect=ssh2_connect("192.168.1.2",22);

ssh2_auth_password($connect,user,pass);

$stream=ssh2_exec($connect, "ls /home");

stream_set_blocking($stream, true);

$output = stream_get_contents($stream);

fclose($stream);

echo $output ;


4,ssh2执行多个命令

第一个命令:
$ stream = ssh2_exec($ connection,'config global') ; 

第二个命令:
$ stream = ssh2_exec($ connection,'get hardware cpu'); 

这样做:

 $ stream = ssh2_exec($ connection,'command1; command2'); 
可以考虑使用 ssh2_shell() 去解决
或者这样:
ssh2_exec(cd /tmp && tar -zvxf   XXXYYY.x86_64.tgz)

参考链接:
http://www.jackxiang.com/post/3790/

使用ssh2 执行远程机器命令 获取执行结果

?php $connect=ssh2_connect("www.superserver.com",22); ssh2_auth_password($connect,'HonestQiao','12...
  • a9254778
  • a9254778
  • 2015年01月20日 13:32
  • 2621

shell命令 grep不以某字符开头、ssh远程执行命令返回结果、ssh远程执行多个命令输入文件

shell命令  grep不以某字符开头,例如不以d开头 ls /data/|grep '^[^d]' 不能写成
  • mmbbz
  • mmbbz
  • 2017年02月09日 09:11
  • 988

多线程调用ch.ethz.ssh2.Connection执行shell任务时有的执行丢失情况解决

最近项目出现一个问题,在使用多线程调用开源ch.ethz.ssh2.Connection执行shell任务时有的任务没有执行,导致没有获取数据。 后来经过定位发现线程池同时间最大运行数设置的是15,而...
  • peng_guan
  • peng_guan
  • 2017年06月25日 17:28
  • 720

java 间断执行多条命令ssh连接,有缺陷

废话不说直接上代码: package com.guoru; import java.io.BufferedReader; import java.io.IOException; imp...
  • supuncleus
  • supuncleus
  • 2016年10月23日 16:00
  • 2221

windows上运行的SSH服务器-OpenSSH 总结

下面介绍两款在windows上运行的SSH服务器,当然在windows平台上最好的莫过于VShell了(使用F-Secure SSH Server也可以,但有中文显示的问题,可以淘汰了)。 1、Op...
  • sinianliushui
  • sinianliushui
  • 2018年01月26日 13:52
  • 62

ssh@host:""ssh切换到其他机器上执行多条命令;Pseudo-terminal will not be allocated because stdin is not a terminal.

1.背景:shell脚本在主机器上执行kafka的启动命令,其他机器也会起这个进程。之前的脚本每次执行的时候出现卡住的现象,不能回到命令行。解决方法:第一种#/bin/bash KAFKA_HOME=...
  • wyl9527
  • wyl9527
  • 2017年05月26日 15:27
  • 1808

nodejs ssh2 上传下载文件错误(打开通道错误:Error: (SSH) Channel open failure: open failed)

由于最近在写一个自动测试的代码,用nodejs写,需要用ssh2模块将本地机器上的文件以及文件夹上传到远程的linux机器上,在百度上面看的相关的例子,但是上面的例子,如果一个连接下载一次然后关闭就不...
  • llmys
  • llmys
  • 2016年10月21日 10:19
  • 1154

[node]nodejs ssh2测试

2.1exec(无上下文,远程执行命令) var Client = require('ssh2').Client;var conn = new Client();conn.on('ready...
  • laputa73
  • laputa73
  • 2017年03月11日 20:27
  • 963

C++学习:使用libssh2实现交互式shell的ssh2,linux和windows通用

使用ssh2实现shell自动化测试,实际工作中遇到非常多。各种语言都有相应的库可以使用。比如,c/c++语言可以使用libssh2;python可以使用paramkio库等。但这些库网上的帮助,都不...
  • KiteRunner
  • KiteRunner
  • 2015年04月05日 16:51
  • 5817

php的ssh2扩展实现远程控制

大概思路: 1.php环境 2.php的ssh2的安装与使用 3.确保防火墙与网络正常 能ping通就行 具体实施 windows的演示 1.下载php中的ssh2扩展(注意php的版本号) 下载地...
  • qq_36030288
  • qq_36030288
  • 2017年02月06日 16:41
  • 1258
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ssh2扩展执行远程登录命令以及执行多个命令
举报原因:
原因补充:

(最多只允许输入30个字)