免费注册 查看新帖 |

Chinaunix

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

Net::OpenSSH 疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-07-28 18:09 |只看该作者 |倒序浏览
朋友们好,我想用perl实现这样一个功能

有多台远端账户与密码相同的服务器,想通过perl脚本在本地登录远端服务器(是SSH 登录上去,相当于打开一个新的会话 ),不加参数的情况下,用普通账户登录,加参数后用root登录
,有什么好思路吗?

大概了解了一下Net::OpenSSH
1.貌似是一定要用证书,不能用user和password
2.通过Net::OpenSSH 在远端机器上执行命令可以,但是不能登录上去

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
2 [报告]
发表于 2013-07-29 10:12 |只看该作者
可以用密码
登陆上去和执行命令有什么区别?

论坛徽章:
0
3 [报告]
发表于 2013-07-29 22:01 |只看该作者
回复 2# yybmsrs

我们是这样设定,在跳板机上部署这个脚本,然后通过跳板机访问我们的服务器
   

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2013-07-29 22:41 |只看该作者
bluesmile11 发表于 2013-07-29 22:01
回复 2# yybmsrs

我们是这样设定,在跳板机上部署这个脚本,然后通过跳板机访问我们的服务器


你没回答2楼的问题

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
5 [报告]
发表于 2013-07-30 11:55 |只看该作者
回复 1# bluesmile11

How about this ...

        $oNet_ssh = Net::OpenSSH->new(
           $sIP, user=> $sUser, passwd=>$sPsw, 'timeout' =>30,
           master_opts => [-o => "StrictHostKeyChecking=no"],
        );

         $oNet_ssh->capture2("YOUR COMMAND ...");

论坛徽章:
0
6 [报告]
发表于 2013-07-30 13:39 |只看该作者
本帖最后由 ackor 于 2013-07-30 13:39 编辑

用expect,这个可以用帐号和密码登陆。

论坛徽章:
0
7 [报告]
发表于 2013-07-31 11:17 |只看该作者
我是调用的这个脚本,需要安装expect-devel ,和tcl包,希望对你有帮助
#!/usr/bin/expect
set timeout 10
set host [lindex $argv 0]
set username [lindex $argv 1]
set password [lindex $argv 2]
set src_file [lindex $argv 3]
set dest_file [lindex $argv 4]
spawn scp $src_file $username@$hostdest_file
expect {
"(yes/no)?"
   {
    send "yes\n"
    expect "*assword:" { send "$password\n"}
}
"*assword:"
{
send "$password\n"
}
}
expect "100%"
expect eof

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP