Centos下 自动化配置SSH免密码登陆
hosts文件,存储要部署的节点IP地址,其中以#开头表示注释掉
192.168.101.52 192.168.101.53 192.168.101.54 192.168.101.55 192.168.101.56
start.sh文件 在hosts文件中存储的所有节点上,生成默认的公钥和私钥,其中单个节点生成的脚本在keygen文件中
#!/bin/bash# ssh-keygen every node hosts="hosts"if [ -f hosts ] thenecho "Start ssh free" elseecho "Please add hosts file"exit 1 fiif [ $# != 2 ] thenecho "USAGE:$0 user password!"exit 1 elseusername=$1pawdname=$2#login every node and ssh-keygenfor x in `cat hosts | sed "/^#.*/d"`do#echo ${x}if [ -f keygen ]thenexpect keygen ${username} ${x} ${pawdname}elseecho "ssh-keygen not exists"echo "Please check it"exit 1fidone fi
keygen文件 在单个节点上生成公钥和私钥
#!/usr/bin/expect -fset timeout 2set name [lindex $argv 0] set node [lindex $argv 1] set pawd [lindex $argv 2]spawn ssh ${name}@${node} expect {"*yes/no*" {send "yes\n";exp_continue}"*password:" {send "$pawd\r"} }expect "*${name}@${node}*" send "ssh-keygen -t rsa -P ''\r" expect "*ssh/id_rsa):" send "\r" expect {"Overwrite (y/n)?" {send "y\n";exp_continue}"*${name}@${node}*" {send "exit\r"} } expect eof exit
备注:请注意,不同版本的提示输出不一样,可能需要读者手动更改keygen 文件中,expect后面的语句
上述几个文件,就可以完成在指定的节点上,生成密钥对了,下面来看下后续处理生成密钥的过程,代码如下:
author.sh 将start.sh脚本中生成的公钥写入到authorized_keys中,并将其上传到各个节点上,最后更改该文件的权限
#!/bin/bash TMP="tmps" rm -rf ${TMP} mkdir ${TMP}TMP=`cd ${TMP};pwd` HOST="hosts" USER="" PAWD="111111"if [ $# == 1 ] thenUSER=$1 elif [ $# == 2 ] thenUSER=$1PAWD=$2 elseecho "USAGE:$0 username"echo "USAGE:$0 username password"exit 1 fiecho ${USER}" "${PAWD}#download id_rsa.pub from every node to the tmp dir count=1 for x in `cat ${HOST}| sed "/^#.*/d"` doexpect download ${USER} ${x} ${PAWD} "${TMP}/${count}"count=`expr $count + 1` done#let all id_rsa.pub into authorized_keys count=1 for x in `ls ${TMP}/*` doif [ count == 1 ]thencat ${x} > /home/${USER}/.ssh/authorized_keyselsecat ${x} >> /home/${USER}/.ssh/authorized_keysficount=`expr $count + 1` done#upload the authorized_keys to every node for x in `cat ${HOST}| sed "/^#.*/d"` doexpect upload ${USER} ${x} ${PAWD} done#chmod 600 to authorized_keys for x in `cat ${HOST}| sed "/^#.*/d"` doexpect priority ${USER} ${x} ${PAWD} done
download 和upload脚本比较简单,就当作给读者的练习题吧,如果需要完整的代码,欢迎从这里下载:https://github.com/nashiyue/fssh.git
转载于:https://www.cnblogs.com/nashiyue/p/5003276.html
Centos下 自动化配置SSH免密码登陆相关推荐
- Day One,配置ssh免密码登陆
在配置过程中遇到一些问题,参考了下面的博文: http://blog.sina.com.cn/s/blog_76fbd24d01017je7.html http://jingyan.baidu.com ...
- jenkins配置ssh免密码登陆
说明 jenkins构建时需要连接远程服务器并且执行脚本,这时就需要配置ssh免密钥登录.jenkins构建时都是以jenkins用户进行操作,所以要以jeknins用户来配置免密钥登录.本教程以用户 ...
- CentOs 下SSH 免密码登陆
CentOs下的SSH免密码登陆: 原理: 1.在ServerA的/root/.ssh目录下 ssh-keygen -t rsa 生成一对儿秘钥 2.将serverA的公钥拷贝到serverB下/ro ...
- centos配置ssh免密码登录后仍要输入密码的解决方法
From: https://blog.csdn.net/zwbill/article/details/80448939 前言 在搭建Linux集群服务的时候,主服务器需要启动从服务器的服务,如果通过手 ...
- 菜鸟Linux系列:[4]SSH免密码登陆远程服务器
背景:搭建Hadoop环境需要设置无密码登陆,所谓无密码登陆其实是指通过证书认证的方式登陆,使用一种被称为"公私钥"认证的方式来进行ssh登录. 在linux系统中,ssh是远程登 ...
- 基于三台虚拟机配置ssh免密登陆
目录 一.前提准备 二.配置ssh免密登陆(Hadoop102,hadoop103,hadoop104) 三.配置三台免密登陆 一.前提准备 qian ti z bqian ti zqian tiqi ...
- ssh免密码登陆(三个节点master slave1 slave2)详细带命令版
准备工作: 首先修改三个节点的名称分别为master slave1 slave2.建议以vim /etc/sysconfig/network的方式修改 修改三个节点的/etc/hosts文件 如下形式 ...
- Ubuntu下VScode配置ssh免密远程登录
一 实现步骤 1.在本机与远程服务器上, 输入ssh-keygen -t rsa,然后连续回车直到结束 2.在本机上执行命令 ssh-copy-id 命令 (1).命令介绍 ssh-copy-id命令 ...
- Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录
ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法. 使用密钥登录分为3步: 1.生成密钥 ...
最新文章
- python 数据逐个验证_在python中验证数据的最佳方法是什么?
- 今年最新整理的《高频Java面试题集合》,聪明人已经收藏了!
- JavaScript与TypeScript总结
- VS2017编译可在Win2000上运行的程序
- 盲人可以也做软件工程师,反思一下老哥
- TwinSocketStream
- C#并行编程(6):线程同步面面观
- 服务器如何查看gpu型号,linux 查看服务器gpu
- 研华数据采集卡如何采集压力信号转化为数字信号_我所了解的数据-数据分析-数据产品...
- 你是否遇到过职业枯竭?
- ce 修改 java游戏_CE6.4.3修改器加强版 CE加强版 可过NP的和众多游戏的CE修改器 - 下载 - 搜珍网...
- java中switch、while、do...while、for
- 开源许可证 有人管吗_4个令人困惑的开源许可证场景以及如何浏览它们
- 普莱得电器IPO过会:拟募资5.6亿 为杨伟明及韩挺两家族控制
- Centos8安装谷歌浏览器
- HTML5期末考核大作业,网站——旅游景点。 学生旅行 游玩 主题住宿网页
- 关于软件快捷方式显示异常,任务栏小图标模糊的解决方案
- 王煜全:AI独角兽必须进行业务升级 否则必死无疑
- 深圳计算机学校排名2015年,2015年深圳各区小学排名汇总
- 将C盘的软件已经移到了D盘,为什么C盘还是会出现变红或饱满的状态?
热门文章
- Java自动部署maven_Maven+Tomcat8 实现自动化部署的方法
- git获取管理员权限 windows_win10不兼容git2.7.3+版本
- java人力资源管理系统设计_人力资源管理系统——《Java Web程序设计》课程设计...
- python seek tell_PYTHON学习14.09:Python seek()和tell()函数详解
- Django项目与中间件与celery
- C实现二叉树的先序遍历,中序遍历,后序遍历
- 通过java使用ssh访问远程Linux
- Vue3之——和Vite不得不说的事
- JavaScript基础笔记
- Java Web中的中文编码问题分析