ssh分发

ssh批量分发:

在nfs-server服务器(分发机)上产生秘钥:(创建一个新用户liming)
ssh-keygen -t dsa   (/home/liming/.ssh/id_dsa   该目录存放着生成的秘钥)
[liming@nfs-server ~]$ ls -l .ssh/
total 8
-rw-------. 1 liming liming 668 Dec  2 15:44 id_dsa   (钥匙)
-rw-r--r--. 1 liming liming 608 Dec  2 15:44 id_dsa.pub (锁)

default port: (将锁发送给其他默认端口的服务器)
ssh-copy-id -i .ssh/id_dsa.pub liming@backup-server 

port:52113  (将锁分发给其他指定该端口的服务器)
ssh-copy-id  -i id_dsa.pub "-p 52113 [email protected]"

其他服务器也是如此操作,秘钥认证之后,nfs服务器这时候到back,lamp,lnmp服务器都不用密码了.
(例:此时从nfs看back服务器的网卡<liming用户>: ssh -p22 liming@backup-server /sbin/ifconfig ens33)

然后分发文件:

scp -P22 hosts liming@backup-server:~      (将本地的hosts文件传到 back服务器的家目录下)

批量分发:(在nfs服务器写脚本)

优化ssh配置文件:/etc/ssh/sshd_config (如果ssh传输慢) 
加入: PermitRootLogin no
    PermitEmptyPasswords no
    UseDNS no
    GSSAPIAuthentication no

vim fenfa.sh

#!/bin/bash
. /etc/init.d/functions  #调用函数库(下面action的使用)

#如果没有参数,做出判断并给出提示:
if [ $# -ne 1 ]
    then
      echo "USAGE:$0 {FILENAME|DIRNAME}"
      exit 1
fi

for n in backup-server lamp01 lnmp02
do
    scp -P22 -r $1 liming@$n:~ &>/dev/null
    if [ $? -eq 0 ]
      then
        action "fenfa $1 ok" /bin/true
    else
        action "fenfa $1 ok" /bin/false
    fi

done

~
测试: sh fenfa.sh hosts

vim view.sh

#!/bin/bash
. /etc/init.d/functions

if [ $# -ne 1 ]
                then
                    echo "USAGE:$0 COMMAND"
                    exit 1
fi
for n in backup-server lamp01 lnmp02
do 
    echo ========$n========
                ssh -P22 oldgirl@$n $1
done

测试:

sh view.sh "/sbin/ifconfig ens33"
sh view.sh "cat /etc/redhat-release"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章