批量实现ssh免交互认证

因为要部署一批服务器,为了以后管理方便,要进行免密认证。一台一台做很费时,脚本又得手动输密码。于是上网搜了搜,发现一个非常简单的免交互认证,不需要入密码即可完成!

环境:centos 6.8 虚拟机VM 安装epel源

脚本如下:

#!/bin/bash

#

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

yum install -y sshpass

echo -e ‘y\n‘ | ssh-keygen -t rsa -N "" -f .ssh/id_rsa  #无论密钥存在不存在都会强行重新生成一次

for i in `cat hostlist`

do

sshpass -p ‘‘ ssh $i -o StrictHostKeyChecking=no echo #这里是为了避免输入yes应答

sshpass -p ‘‘ ssh-copy-id -i .ssh/id_rsa.pub $i  # ‘‘ 是空密码的意思,可以根据自己需要更改

done

这样运行过程中根本不需要你的任何干涉,直接就完成了免密认证,也不需要很复杂的脚本。

本人也是linux菜鸟一枚,如果大家有什么建议或分享请及时共享出来哦!

时间: 2024-11-05 14:43:21

批量实现ssh免交互认证的相关文章

Shell批量SSH免交互登录主机

脚本实现功能:批量或单个SSH免交互登录认证 脚本应用场景:当部署集群时,大多数实现要配置好管理节点与从节点的SSH免交互登录,针对这样的情况,写了下面脚本,简化工作. #!/bin/bash # blog:http://lizhenliang.blog.51cto.com   color_echo() {     if [ $1 == "green" ]; then         echo -e "\033[32;40m$2\033[0m"     elif [

批量实现ssh免密登录

本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们通常还是工作在,几十台上百台服务器这样的环境,而使用ansible或者puppet这样的自动化运维工具则显得大材小用,并且最终的效果可能还不如几个小工具达到的效果好.像ssh免密登录在配合pssh这样的推送工具,在配合自动化配置脚本,可以说是即方便也使用.这一节将详细带大家以shell脚本的形式实现

centos7 ssh免口令认证登录

摘要:centos7, xshell, 公钥,  ssh ssh登录方式有口令认证登录和密钥认证登录 接下来本次介绍是ssh密钥登录方式 (1)产生公钥 (2)将公钥放置到centos7的(/root/./ssh)目录中 (3)然后添加ssh用户 因为我下载的xshell以中文,产生公钥的过程如图: 首先选择xshell里面的工具 选择新建用户密钥生成向导(数字签名RSA和DSA 默认RSA) 密钥长度2048 点击下一步 点击下一步 可以更改你密钥名称及其密钥加密密码 然后继续下一步 将其导出

windows文件备份到linux:windows定时任务+cwrsync+ssh免密码认证

一.安装cwrsync 二.创建密钥对,实现ssh免密码验证 linux服务器上 [[email protected] ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): ###回车 Created directory '/root/.ssh'. Enter passphrase (empty for no passphras

Linux ssh免密钥认证

hadoop和ansible都需要这个东西,其实很简单. 第一,在需要免秘钥登录的机器上生成公钥和私钥: ssh-keygen 第二,拷贝生成的公钥id_rsa.pub到远程机器上: ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]  #用此方式拷贝的好处是不用改名 这时再登录192.168.0.247的机器就无需密码了. [[email protected]_server ~]# ssh 192.168.0.247 Last logi

ssh-key免密钥认证实战

ssh-key免密钥认证 环境: server 服务器192.168.1.178/24 client-b服务器192.168.1.1.179/24 client-c服务器192.168.1.1.180/24 这三台机器都禁止root的远程登录,并且把ssh的默认访问端口22改成5201端口 这三台机器都创建了crazy普通用户,密码123456 需求:实现server端通过SSH通道可以免密码访问client-b主机和client-c主机 拓扑图: 实战操作: 在server服务器使用crazy

ssh免密验证,shell批量设置

#!/bin/sh #ssh免密验证,shell批量设置# . /etc/init.d/functions [[ -f /usr/bin/expect ]] || { echo " install expect ...";yum install expect -y >/dev/null 2>&1; } #若没expect则安装# [ $? = 0 ] || { echo "expect安装失败";exit; } #安装失败则退出# PUB=/$H

SSH免密登录(并且免yes交互)

问题描述:主机A使用ssh协议远程主机B,默认会开启口令认证,即输入主机B对应用户的登录密码,并且第一次登录时,主机A需验证是否接受来自主机B的公钥,输入"yes/no"完成交互.实现ssh免密登录和免yes交互可提高服务器管理效率. 实现思路:1. 主机A创建密钥对id_rsa,id_rsa.pub,并将公钥id_rsa.pub上传至主机B,保存为/root/.ssh/authorized_keys文件: 2. 修改主机B的sshd服务配置文件/etc/ssh/sshd_config

linux下expect命令实现批量ssh免密

有时候我们需要批量发送ssh命令给服务器,但是有可能有些服务器是新加入的,还没有配置ssh免密,这个时候就会提示我们输入yes/no 或者password等,expect脚本命令就是用于在提示这些的时候,自动为我们输入相应的文字 expect脚本 先看一段shell脚本,实现了ssh自动连接 #!/usr/bin/expect spawn ssh 192.168.1.241 expect "password" send "123456\r" expect "