远程管理服务

1  SSH免密码登陆部署方式

    第一个步骤: 在客户端创建密钥对信息(管理主机10.0.0.61)
    [root@m01 ~]# ssh-keygen -t dsa
    [root@m01 ~]# ll ~/.ssh/
    total 8
    -rw------- 1 root root 668 Mar  4 10:36 id_dsa
    -rw-r--r-- 1 root root 598 Mar  4 10:36 id_dsa.pub
    第二步: 分发公钥信息
   [root@m01 ~]# ssh-copy-id -i ~/.ssh/id_dsa.pub root@172.16.1.31
 

2. 如何编写SSH配置文件

    vim /etc/ssh/sshd_config
#Port 22                   --- 修改服务端口号参数
    #ListenAddress 0.0.0.0     --- 修改监听地址(指定的监听地址可以建立连接)
                     0.0.0.0监听本地主机网卡有的所有地址, 建议只监听内网网卡地址
  !!!PS: 服务只能监听本地网卡上有的地址
#PermitEmptyPasswords no   --- 是否允许空密码登陆连接,默认不允许
#PermitRootLogin yes       --- 是否允许root用户远程登陆,默认允许
连接优化:GSSAPIAuthentication on    --- 特殊的认证需要关闭(提升远程连接效率)
      #UseDNS on                 --- 开启了代表具有DNS反向解析功能
                               DNS正向解析: 已知域名信息  --- IP地址信息
   DNS反向解析: 已知IP信息    --- 获得域名信息
      (需要以来hosts文件配置,如果文件没有配置,反向解析过程会影响远程连接效率)
07. 如何批量分发公钥/如何实现批量验证
   问题一: 如何批量分发公钥             基于脚本循环
        利用脚本循环操作
mkdir /server/scripts -p
vim fenfa.sh     --- 初始分发公钥脚本
#!/bin/bash
            for ip in `cat /server/scripts/ip_list.txt`
            do
ssh-copy-id -i /root/.ssh/id_dsa.pub root@$ip
            done
问题一: 分发时需要输入密码信息
需要安装:yum install -y sshpass
sshpass -p123456 ssh-copy-id -i ~/.ssh/id_dsa.pub root@172.16.1.31
 
问题二: 需要进行确认
>~/.ssh/known_hosts   为了实现确认效果,需要清楚客户端known_hosts文件
           sshpass -p123456 ssh-copy-id -i ~/.ssh/id_dsa.pub root@172.16.1.31 -o StrictHostKeyChecking=no
 
完善脚本信息:
[root@m01 scripts]# cat fenfa_pub.sh
            #!/bin/bash
            source /etc/init.d/functions
           
            for ip in `cat /server/scripts/ip_list.txt`
            do
               echo "================ start fenfa to $ip =================="
               sshpass -p123456 ssh-copy-id -i ~/.ssh/id_dsa.pub root@$ip -o StrictHostKeyChecking=no &>/dev/null
               if [ $? -ne 0 ]
               then
                  action "host $ip fenfa fail !" /bin/false
               else
                  action "host $ip fenfa success !" /bin/true
               fi
               echo "================ end fenfa  =================="
               echo ""
            done
 
分发测试检查脚本:
#!/bin/bash
            source /etc/init.d/functions
           
            for ip in `cat /server/scripts/ip_list.txt`
            do
               echo "================ start check to $ip =================="
               ssh root@$ip $1
               if [ $? -ne 0 ]
               then
                  action "host $ip check fail !" /bin/false
               else
                  action "host $ip check success !" /bin/true
               fi
               echo ""
            done
 
完善:
[root@m01 scripts]# vim fenfa_check.sh
            #!/bin/bash
            source /etc/init.d/functions
            if [ $# -ne 1 ]
            then
               echo "pls input one commond"
               exit
            fi
           
           
            for ip in `cat /server/scripts/ip_list.txt`
            do
               echo "================ start check to $ip =================="
               ssh root@$ip $1
               if [ $? -ne 0 ]
               then
                  action "host $ip check fail !" /bin/false
               else
                  action "host $ip check success !" /bin/true
               fi
               echo ""
            done
sh fenfa_check.sh hostname
 
问题二: 如何SSH服务端口号变更如何进行分发 基于特殊参数
        ssh-copy-id -i ~/.ssh/id_dsa.pub root@172.16.1.31 -p52113

 

posted @ 2019-12-06 09:54  xiaoxiaoren520  阅读(272)  评论(0编辑  收藏  举报