批量加ssh key,无密码ssh登陆


1.     生成RSA Key pair,在跳转机上运行:

ssh-keygen -t rsa

然后一路回车跳过。


2.     将公钥的内容复制到 15机器上:

scp -P 12345  ~/.ssh/id_rsa.pub dcplatform@10.125.70.15:/home/dcplatform/lx/add_auth_key


3.     进入10.125.70.15下的/home/dcplatform/lx/add_auth_key目录


4.     将 公钥加入测试环境的IP列表:

cat ip_qa.txt | ./add_auth_key.pl 22


5.     将 公钥加入生产环境的IP列表:

cat ip_prod.txt | ./add_auth_key.pl 12345


6.     退回跳转机,将以下代码加入 ~/.bashrc

#QA Env

alias 7='ssh dcplatform@10.131.18.7'

alias 6='ssh dcplatform@10.131.18.6'

alias 5='ssh dcplatform@10.131.18.5'

alias 4='ssh dcplatform@10.131.18.4'

alias 3='ssh dcplatform@10.131.18.3'


#Prod Env

alias 50='ssh -p 12345 dcplatform@10.125.42.50'

alias 51='ssh -p 12345 dcplatform@10.125.42.51'

alias 52='ssh -p 12345 dcplatform@10.125.42.52'

alias 53='ssh -p 12345 dcplatform@10.125.42.53'


alias 100='ssh -p 12345 dcplatform@10.125.42.100'

alias 187='ssh -p 12345 dcplatform@10.133.10.187'


alias 15='ssh -p 12345 dcplatform@10.125.70.15'

alias 16='ssh -p 12345 dcplatform@10.125.70.16'


alias 17='ssh -p 12345 dcplatform@10.125.70.17'

alias 18='ssh -p 12345 dcplatform@10.125.70.18'

alias 19='ssh -p 12345 dcplatform@10.125.70.19'


7.     运行source ~/.bashrc,以后只需要输入15,50等数字就可以直接登录相应服务器了。




附:add_auth_key.pl代码

 

 

#!/usr/bin/perl -w
use strict;
use Expect; 
#$Expect::Exp_Internal = 1;
#$Expect::Log_Stdout = 1;

my $timeout = 3;

while(<STDIN>)
{
        chomp;
        my $ip = $_;
        printf "installing rsa key...\n";
        printf $ip."\n";
        my $exp = Expect->spawn("scp -o StrictHostKeyChecking=no -P $ARGV[0] id_rsa.pub dcplatform\@$ip:~/") or die "Couldn't spawn ssh, $!"; 
        $exp->raw_pty(1);
        $exp->log_file("output.log"); 

        if ($exp->expect($timeout,'password'))
        {
                $exp->send("y6a2!Hsa:5!h_D3\r");
        }
        $exp->soft_close();


        $exp = Expect->spawn("ssh -o StrictHostKeyChecking=no -p $ARGV[0] -l dcplatform $ip") or die "Couldn't spawn ssh, $!";
        $exp->raw_pty(1);
        if ($exp->expect($timeout,-re=>'password:'))
        {
                $exp->send("y6a2!Hsa:5!h_D3\n");
        }

        $exp->expect($timeout, -re=>'[$#]');
        $exp->send("mkdir -p .ssh\n");
        $exp->expect($timeout, -re=>'[$#]');
        $exp->send("cat id_rsa.pub >> ~/.ssh/authorized_keys\n");
        $exp->expect($timeout, -re=>'[$#]');
        $exp->send("chmod 700 .ssh; chmod 600 .ssh/authorized_keys\n");
        $exp->send("exit\n");
        $exp->soft_close();
}

printf "All done...\n";
 

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值