手工开发SSH-KEY工具(分发密钥批量执行分发文件)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手工开发SSH-KEY工具(分发密钥批量执行分发文件)相关的知识,希望对你有一定的参考价值。
前段时间用Shell开发一个SSH-KEY的工具,分享给网友,如果有更好的建议或改动请留言。笔者水平有限,希望大神提点。
这个Shell脚本的功能,可以根据主机或主机组进行管理,以往可能就是一个for循环全部管理。。。。难免有些不顺手
使用说名。
1、目录结构
[[email protected] ssh-key]# tree . ├── bin #<==这个就是解压后的脚本目录了 │ ├── fenfa-file.sh #<==分发文件 │ ├── fenfa-key.sh #<==分发key │ └── ssh-key-cmd.sh #<==批量执行命令 ├── conf #<==相关的配置文件目录 │ ├── spconf #<==这里使用的sshpass提交密码,所以这是密码文件 │ └── ssh-key.conf #<==这个就是ssh-key全部的配置文件 └── logs #<==log功能,待开启,希望大神帮忙
2、使用必须说明
1)授权分发密钥要安装sshpass工具,不了解的可以百度一下,3分钟就懂了
2)使用分发到特殊路径(非root用户),你需要添加sudo权限,这里使用的是rsync
3)批量执行命令脚本也是通过执行sudo来完成特殊命令
3、配置文件说明
[[email protected] ssh-key]# cat ./conf/ssh-key.conf #<==配置文件的目录 # SSH-Key # fenfa-key config sshCopy="/usr/bin/ssh-copy-id" #<==指定ssh-copy-id的位置 sshPass="/usr/bin/sshpass" #<==指定sshpass的路径 spconf="~/ssh-key/conf/spconf" #<==指定sshpass密码文件,及你远程管理用户的密码 # ssh-key host #<==定义主机标签使用数组的方式 webgroup=( #<==如下在webgroup中定义了两台计算机 10.0.0.7 10.0.0.8 ) # port Port=22 #<==指定远程的ssh端口 # User User=admin #<==远程同步的账户
4、使用说明
权限说明:
1)建议放在对应的项目用户家目录下下面,防止普通用户使用,其他路径请修改导入配置文件的信息(. ~/ssh-key/conf/ssh-key.conf)
2)配置文件中的用户远端必须存在,且有sudo对应权限(重要)
3)远端用户密码必须与spconf中相同
4)Lack of dependency support sshpass. 请安装sshpass,需要epel源
5、演示效果
-h 指定主机 -g 指定主机组(注意要是配置文件中存在的)
分发key演示:
[[email protected] ~]# ./ssh-key/bin/fenfa-key.sh -g webgroup Host 10.0.0.8 [ OK ] Host 10.0.0.9 [ OK ]
执行命令,命令最好用加""
[[email protected] ~]# ./ssh-key/bin/ssh-key-cmd.sh -g webgroup "hostname" <==================10.0.0.8====================> node-2 Connection to 10.0.0.8 closed. <==================10.0.0.9====================> node-3 Connection to 10.0.0.9 closed. [[email protected] ~]# ./ssh-key/bin/ssh-key-cmd.sh -h 10.0.0.9 "hostname" #<==也可以使用hosts解析中的名字哦 <==================10.0.0.9====================> node-3 Connection to 10.0.0.9 closed.
分发文件:
[[email protected] ~]# ./ssh-key/bin/fenfa-file.sh -g webgroup ./hosts /etc/hosts Host 10.0.0.8 [ OK ] Host 10.0.0.9 [ OK ]
代码文件在附件中,如果觉得好,可以点个赞。
本文出自 “技术随笔” 博客,请务必保留此出处http://ievan.blog.51cto.com/11177578/1844049
以上是关于手工开发SSH-KEY工具(分发密钥批量执行分发文件)的主要内容,如果未能解决你的问题,请参考以下文章
ssh密钥分发之二:使用sshpass配合ssh-kopy-id编写脚本批量分发密钥: