批量ssh

Posted water-sky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批量ssh相关的知识,希望对你有一定的参考价值。

一、安装expect

yum -y install expect

二、常用程序

expect程序:

#!/usr/bin/expect -f 
set ip [lindex $argv 0 ]   #接收第一个参数,并设置IP 
set password [lindex $argv 1 ] #接收第二个参数,并设置密码 
set timeout 10     #设置超时时间 
spawn ssh [email protected]$ip "hostname"  #发送ssh请滶 
expect {     #返回信息匹配 
 "*yes/no" { send "yes
"; exp_continue} #第一次ssh连接会提示yes/no,继续 
 "*password:" { send "$password
" }  #出现密码提示,发送密码 
} 
interact   #交互模式,用户会停留在远程服务器上面

 

三、批量ssh

#!/bin/bash
SERVERS="192.168.1.241 192.168.1.242"
PASSWD="123456"

function sshcopyid
{
    expect -c "
        set timeout -1;
        spawn ssh-copy-id $1;
        expect {
            "yes/no" { send "yes
" ;exp_contine; }
            "password:" { send "$PASSWD
";exp_continue; }
        };
        expect eof;
    "
}

for server in $SERVERS
do
    sshcopyid $server

done

 

以上是关于批量ssh的主要内容,如果未能解决你的问题,请参考以下文章

Python的pxssh实现ssh登录之批量“打杂”

ssh实现多级免密码验证企业分发管理

如何从选项卡片段中的 AsyncTask Resftful WS 加载批量数据

SSH批量分发管理

ssh配置详解及公私钥批量分发

使用GO语言灵活批量ssh登录服务器执行操作