perl批量更改服务器密码

简介:
#!/usr/bin/ perl

use strict;
use warnings;
use Net::SSH::Expect;   
use String::MkPasswd qw(mkpasswd);


my $user = "user";
my $pass = 123456;
my $root_pass = 123456;
my $new_user_pass = mkpasswd(-length => 15, -minnum => 3, -minlower => 3 , -minupper => 3, -minspecial => 3);
my $port = 22;



open (FILE, "</var/bak/test/iplist") or die "can't open file: $!\n";
while (<FILE>) {
      print;
      &ssh_host( "$_", "$port", "$user", "$pass" );
}
close(FILE);


sub ssh_host() {
      my ( $host, $port, $user, $pass ) = @_;
      my $ssh = Net::SSH::Expect->new(
              host              => $host,
              port              => $port,
              password      => $pass,
              user              => $user,
              no_terminal => 0,
              raw_pty         => 1,
              timeout         => 5,
      );

      open (FH, ">> /var/bak/test/log_$host") or die "can't open file: $!\n";

      print FH "-" x 80, "\n";
      my $start_time = localtime;
      print FH "start \tat $start_time\n";

      $ssh->debug(0);
      $ssh->run_ssh() or die "SSH process couldn't start: $!\n";

      $ssh->waitfor( '\(yes\/no\)\?$', 5 );
      $ssh->send("yes\n");
      $ssh->waitfor( 'password:\s*$/', 5 );
      $ssh->send("$pass");

      $ssh->send("su - root");
      $ssh->waitfor( 'Password:\s*$', 5 );
      $ssh->send("$root_pass");
      $ssh->waitfor( '#\s*', 5 );

      print FH "root login ok. \n";

      $ssh->send("passwd");

      $ssh->waitfor( 'password:\s*$', 5 );
      $ssh->send("$new_user_pass");

      $ssh->waitfor( 'password:\s*$', 5 );
      $ssh->send("$new_user_pass");
      $ssh->waitfor( '#\s*', 5 );

      my $ls = $ssh->exec("id");
      print FH "$ls\n";
      print FH "chang password ok!!!!!!!\n";
      print FH "$new_user_pass\n";

      my $end_time = localtime;
      print FH "end \tat $end_time\n";

      $ssh->close();

      close FH;

      print "-" x 80, "\n";
}









本文转自 trt2008 51CTO博客,原文链接:http://blog.51cto.com/chlotte/284679,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
SQL 弹性计算 安全
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程
当我们通过阿里云的活动购买完云服务器之后,并不是立马就能使用了,还需要我们设置云服务器密码,配置安全组等基本操作之后才能使用,有的用户还需要购买并挂载数据盘到云服务器上,很多新手用户由于是初次使用阿里云服务器,因此并不知道这些设置的操作流程,下面给大家介绍下这些设置的具体操作流程。
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程
|
9天前
|
Linux Shell 数据安全/隐私保护
Linux如何在服务器上进行密码的修改?
【10月更文挑战第6天】Linux如何在服务器上进行密码的修改?
13 1
|
3月前
|
弹性计算 运维 安全
云服务器 ECS产品使用问题之怎么添加登录密码
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
云服务器 ECS产品使用问题之怎么添加登录密码
|
3月前
|
弹性计算 Linux 数据安全/隐私保护
云服务器 ECS产品使用问题之linux如何设置服务器密码
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
3月前
|
SQL 弹性计算 安全
通过阿里云的活动购买的云服务器,后续购买并挂载云盘、设置密码及安全组教程
现在大多数用户购买阿里云的云服务器通常都是通过阿里云的活动来购买,这种购买方式主要是价格更实惠,且购买流程简单,但是选购活动中的云服务器,一般只有系统盘,没有数据盘,这需要我们在购买之后单独购买并挂载云盘作为数据盘,而且云服务器的密码和安全组等基础设置也是需要在购买之后再设置的。本文为大家介绍后续购买并挂载云盘、设置密码及安全组的相关教程,以供参考。
通过阿里云的活动购买的云服务器,后续购买并挂载云盘、设置密码及安全组教程
|
3月前
|
弹性计算 数据安全/隐私保护 云计算
云服务器 ECS产品使用问题之如何设置阿里云幻兽帕鲁服务器玩家连接密码
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
4月前
|
安全 Linux Shell
SSH服务器拒绝密码登录的解决方法
SSH服务器拒绝密码登录的解决方法
1029 1
|
3月前
|
网络安全 数据安全/隐私保护
服务器密码登录出现了:SSH connection failed: connect ECONNREFUSEDxxxxxxxx:22 * Xshell提示 SSH connection fa
服务器密码登录出现了:SSH connection failed: connect ECONNREFUSEDxxxxxxxx:22 * Xshell提示 SSH connection fa
|
5月前
|
弹性计算 运维 安全
|
5月前
|
数据安全/隐私保护
2012及其以上系统修改服务器密码指南
2012及其以上系统修改服务器密码指南