我是靠谱客的博主 潇洒大碗,最近开发中收集的这篇文章主要介绍一个配置集群ssh互信的shell脚本,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

shell互信脚本


#!/bin/sh

## 1 delete .ssh directory
UserName="mongodb"
rm -rf ~/.ssh
ssh-keygen -t rsa
ssh-keygen -t dsa
startnode=7
endnode=7
for ((i=${startnode}; i<=${endnode}; i++));
do
ssh
$UserName@node$i 'rm -rf ~/.ssh; ssh-keygen -t rsa -f ~/.ssh/id_rsa -P "";exit '
ssh $UserName Node$i 'rm -rf ~/.ssh;ssh-keygen -t rsa -f ~/.ssh/id_rsa -P "";exit'
done;
# 2 copy public keys to one file
#ssh $UserName@node1
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
for ((i=${startnode}; i<=${endnode}; i++));
do
ssh $UserName@node$i cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh $UserName@node$i cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
done;
# 3 Dispath authorized_keys to other machines and change file property
chmod 600 ~/.ssh/authorized_keys
for ((i=${startnode};i<=${endnode};i++));
do
scp ~/.ssh/authorized_keys $UserName@node$i:~/.ssh/
ssh $UserName@node$i 'chmod 600 ~/.ssh/authorized_keys'
done;

说明

  • 脚本执行的步骤
    • 第一步 在各个主机上生成key;
    • 第二步 将各个主机上的的公钥拷贝到执行命令的主机的 authorized_keys中;
    • 第三步 将authorized_keys 分发到其他主机;
    • 第四步 修改authorized_keys的访问权限为600.
  • UserName对应的是主机名称;
  • ssh-keygen -t rsa 和ssh-keygen -t dsa 产生两种加密密钥,当然也可以只使用其中一种;
  • startnode和endnode表示节点IP的范围,如从192.168.2.150到192.168.2.159时,startnode=1, endnode=9,只需要在192.168.2.150的主机上执行该脚本即可;
  • ssh username@hostname cmd 登录到远程主机执行cmd命令,若需要执行多条命令,需要写成,’cmd;cmd;cmd’
  • 该脚本目前的功能还比较弱小,如ip的范围必须连续,主机名的前缀必须相同,但对于搭建个小集群,配置主机互信基本够用了,当然欢迎大家一起讨论,后面有时间在继续更新完善。

最后

以上就是潇洒大碗为你收集整理的一个配置集群ssh互信的shell脚本的全部内容,希望文章能够帮你解决一个配置集群ssh互信的shell脚本所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部