Chinaunix
标题:
Net::OpenSSH 疑问
[打印本页]
作者:
bluesmile11
时间:
2013-07-28 18:09
标题:
Net::OpenSSH 疑问
朋友们好,我想用perl实现这样一个功能
有多台远端账户与密码相同的服务器,想通过perl脚本在本地登录远端服务器(是SSH 登录上去,相当于打开一个新的会话 ),不加参数的情况下,用普通账户登录,加参数后用root登录
,有什么好思路吗?
大概了解了一下Net::OpenSSH
1.貌似是一定要用证书,不能用user和password
2.通过Net::OpenSSH 在远端机器上执行命令可以,但是不能登录上去
作者:
yybmsrs
时间:
2013-07-29 10:12
可以用密码
登陆上去和执行命令有什么区别?
作者:
bluesmile11
时间:
2013-07-29 22:01
回复
2#
yybmsrs
我们是这样设定,在跳板机上部署这个脚本,然后通过跳板机访问我们的服务器
作者:
py
时间:
2013-07-29 22:41
bluesmile11 发表于 2013-07-29 22:01
回复 2# yybmsrs
我们是这样设定,在跳板机上部署这个脚本,然后通过跳板机访问我们的服务器
你没回答2楼的问题
作者:
jason680
时间:
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 ...
");
作者:
ackor
时间:
2013-07-30 13:39
本帖最后由 ackor 于 2013-07-30 13:39 编辑
用expect,这个可以用帐号和密码登陆。
作者:
zz028
时间:
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@$host
dest_file
expect {
"(yes/no)?"
{
send "yes\n"
expect "*assword:" { send "$password\n"}
}
"*assword:"
{
send "$password\n"
}
}
expect "100%"
expect eof
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2