免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6290 | 回复: 7
打印 上一主题 下一主题

关于使用SSH2执行命令行的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-14 03:14 |只看该作者 |倒序浏览
首先说下,我通过用户名和密码成功连接到远程服务器上面了。看代码:

<?php
$connection = ssh2_connect( 'IP', 22 );
if ( ssh2_auth_password( $connection, 'user', 'pwd' ) ) {
//echo 'alright, I am in!';
}
?>

我想实现:
1. su到root
2. 判断用户名"test"是否存在
3. 如果存在,修改密码为:123456
4. 如果不存在,新建“test”

现在问题来了,ssh2_exec()函数,一次只能执行一行命令,多行命令用“\n”连接最后也没搞定……哎,真悲催!

像我这种需求,多行命令之间都是有联系的,是不是不能用ssh2_exec函数?得用shell?

应该怎么解决???各路大神路过的发表一下看法啊...

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
2 [报告]
发表于 2012-10-14 11:03 |只看该作者
1, 分4次ssh2_exec和一次将4条命令发过去, 结果是一样的, 不知道你说的有联系到底是有多密切.
2, 如果你非要所谓的一次性的, ssh2_shell拿到stream, 直接向stream写出4条命令就可以了.
3, 方法2你觉得不满意, 那么在本地预先准备好脚本, 里面放4条命令, 然后先ssh2_scp, 然后ssh2_exec直接执行脚本.

论坛徽章:
0
3 [报告]
发表于 2012-10-14 20:46 |只看该作者
linux_c_py_php 发表于 2012-10-14 11:03
1, 分4次ssh2_exec和一次将4条命令发过去, 结果是一样的, 不知道你说的有联系到底是有多密切.
2, 如果你非 ...


谢谢你的回复,我分段ssh2_exec,但是没反应啊,我再试试……

论坛徽章:
0
4 [报告]
发表于 2012-10-15 14:46 |只看该作者
我要把用户名test的密码改一下,有经验的朋友看下哪里错了?感觉用ssh2_exec不太好,是不是得shell?是的话,应该怎么写???先谢谢了!
  1. $con = ssh2_connect( 'IP', '22' );
  2. if ( ssh2_auth_password( $con, 'root', 'root_pwd' ) ) {
  3.         $stream = ssh2_exec( $con, "passwd test\n123456\n123456\n" ); //把用户名“test”的密码改成“123456”
  4.         echo $stream;
  5. } else echo 'Cannot log in';
复制代码

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
5 [报告]
发表于 2012-10-15 18:54 |只看该作者
ssh2_exec是执行shell command, 不是直接让你传输字节流(你就是在这样做).

这个问题的正确做法:

  1. echo "your password here" | passwd --stdin your_username_here
复制代码

论坛徽章:
0
6 [报告]
发表于 2012-10-17 16:11 |只看该作者
linux_c_py_php 发表于 2012-10-15 18:54
ssh2_exec是执行shell command, 不是直接让你传输字节流(你就是在这样做).

这个问题的正确做法:


你和csdn上有个人的回复差不多,我觉得靠谱。我试试先,先谢谢你了哥们。

论坛徽章:
0
7 [报告]
发表于 2012-10-17 16:31 |只看该作者
搞定,谢谢了哥们。

论坛徽章:
0
8 [报告]
发表于 2012-10-18 11:47 |只看该作者
银行项目,需要专业的人才,在北京、深圳、广州都可以上班。
薪资待遇都好,办公环境也不错,与优秀的团队共事。
经验丰富的资深人才可转管理方向发展

请看如下招聘需求,如有兴趣,欢迎投递简历至我邮箱。我会在第一时间回复你。

【银行项目】 招聘职位:AS400技术工程师
薪资要求:面议(从优,人才则价更高)
工作地点:北京
1、大学本科以上学历,计算机、应用数学及相关专业;
2、有AS/400平台开发经验;
3、有AS/400 RPG编程开发经验者优先考虑;
4、熟悉银行业务,有银行业务系统开发经验;
5、具有良好的团队协作精神,良好的沟通能力,较强的责任心和上进心。

附:如有经验的同学朋友们,学历受限,则可放宽学历条件。
         公司提供优越的办公环境、优秀的共事团队以及良好的发展空间
          我们招的不是单单的技术人才,更是培养管理团队的负责人

简历投递至: hr@rising-star.us278092804@qq.com
AS400精英汇QQ群 244203161 (500人)


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP