批量把本机的ssh密钥同步到远程设备以ssh无密码登入

  1. 首先生成本机密钥

本机执行命令: ssh-keygen -t rsa

一路回车

在/root/.ssh生成了id_rsa和id_rsa.pub,我们要用这个id_rsa.pub

2.安装expect

yum -y install expect

3.用脚本把密码拷贝过去

#!/bin/bash
###############需要同步ssh的设备和密码#########
ip=(
    192.168.132.130
    192.168.132.131
)
passwd=123456
##############本机生成ssh公钥####################
cat /root/.ssh/id_rsa.pub>/root/.ssh/authorized_keys
#############在远程主机创建/root/.ssh###########
for ip in in ${ip[@]}
do
   expect -c "
        spawn ssh [email protected]$ip \"mkdir /root/.ssh\"
                expect {
                        \"*yes/no*\" { send \"yes\r\";exp_continue }
                        \"*password*\" { send \"$passwd\r\";exp_continue }
                        \"*password*\" { send \"$passwd\r\"; }
                        }
             "
   expect -c "
        spawn scp  /root/.ssh/authorized_keys [email protected]$ip:/root/.ssh/
                expect {
                        \"*yes/no*\" { send \"yes\r\";exp_continue }
                        \"*password*\" { send \"$passwd\r\";exp_continue }
                        \"*password*\" { send \"$passwd\r\"; }
                        }
             "
done

4.执行脚本,然后就可以直接ssh IP 进入IP列表中的主机了

时间: 2024-12-17 22:26:29

批量把本机的ssh密钥同步到远程设备以ssh无密码登入的相关文章

ssh登入不上输入密码解决

公司一直是用ssh无密码登入设备,今天给客户开下设备权限,客户登入不让输入密码: 解决方法: 编辑 /etc/ssh/sshd_config,把 PasswordAuthentication no 改成yes 重启sshd:service sshd restart 解决

ssh密钥分发之二:使用sshpass配合ssh-kopy-id编写脚本批量分发密钥:

使用sshpass配合ssh-kopy-id编写脚本批量分发密钥: 首先sshpass是一个ssh连接时的免交互工具,首先要安装一下: yum install sshpass -y 接下来我们就可以使用sshpass工具了,一条命令形式分发ssh公钥: sshpass -p "ssh登录密码" ssh-copy-id -i /root/.ssh/id_dsa.pub -o StrictHostKeyChecking=no [email protected]123.56.221.190

ssh 密钥详解

原理: 密匙认证需要依靠密匙,首先创建一对密匙(包括公匙和密匙,并且用公匙加密的数据只能用密匙解密),并把公匙放到需要远程服务器上.这样当登录远程 服务器时,客户端软件就会向服务器发出请求,请求用你的密匙进行认证.服务器收到请求之后,先在你在该服务器的宿主目录下寻找你的公匙,然后检查该公匙是 否是合法,如果合法就用公匙加密一随机数(即所谓的challenge)并发送给客户端软件.客户端软件收到 “challenge”之后就用私匙解密再把它发送给服务器.因为用公匙加密的数据只能用密匙解密,服务器经

CentOS6.5 下SSH密钥登录详解

一.密钥登录的必要性 一般地,密钥登录SSH比账户密码登录要安全,有时候公司需要给新来的同事配置服务器登录,一般都是直接配置密钥登录. 二.SSH密钥登录步骤 1.密钥的生成 一般有很多办法生成密钥.我们在此,使用正服务器上使用SSH-genkey来生成密钥,用客户端的puttygen来转换的办法. 如下图: 其中-t是表示加密方式.然后修改公钥名称为authorized_keys. 另外,要确保.ssh目录的权限为600,如不是,则使用chmod 600 .ssh 来设置.主要是为了防止他人在

ssh密钥转发(Linux和Windows)

前言 一般公司的服务器放在外网时,都会设置一个跳板机,访问公司其他服务器都需要从跳板机做一个ssh跳转(防火墙规则会做相应配置),而前文讲过,外网的服务器基本都要通过证书登录的.于是我们面临一个情况,本机ssh->跳板机->目标机器.如果是密码验证,这个问题都不到,但是对于证书登录,就带来一个ssh密钥转发的问题. linux ssh客户端密钥转发 如果是linux客户端,从linux客户端的ssh跳转过去时,一般我们会执行命令 ssh [email protected]跳板机ip 然后我们在

《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令

2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会改进,还没买的小伙伴们可以买第二版. 一.安装1.安装要求:控制服务器:需要安装Python2.6/2.7被管理服务器:需要安装Python2.4 以上版本,若低于Python2.5 需要安装pythonsimplejson;若启用了selinux,则需要安装libselinux-python 2.yum安装

git使用ssh密钥和https两种认证方式汇总(转)

在版本库的SSH方式和HTTPS方式是不同的,具体来说就是url信息的不同,但是,实际的认证机制也是不同的.当建立了本机密钥之后,使用ssh方式实际上是不需要再次认证的,而https则每次需要输入密码 .<Help.GitHub - SSH key passphrases>里也说了用SSH更方便更安全,不需要去输入长长的密码. 我去看了下repo目录下的.git/config,果然,我的url是HTTPS形式. 1 2 3 [remote "origin"] fetch =

添加SSH密钥到GitHub

$ clip < ~/.ssh/id_rsa.pubbash: /c/Users/huangxi/.ssh/id_rsa.pub: No such file or directory [转]Generating SSH keys 生成 SSH 密钥 Step 1.检查本机现有的SSH密钥 检查~/.ssh看看是否有名为d_rsa.pub  和id_dsa.pub的2个文件.如果你什么都没得到这些文件,转到  步骤2 ;否则,请跳到  第3步. 打开你的Git Bash,输入: $ ls -al

使用SSH密钥连接Github

使用Github,也许大家觉得比较麻烦的就是在每次push的时候,都需要输入用户名和密码.如果使用SSH,就可以记住用户名,并创建属于自己的密码来保证安全操作,还有神奇的一招可以“不用输入密码”哦.下面将介绍如何创建SSH Keys并将公钥加到GitHub账户中,使用SSH Keys在本机和GitHub之间建立一个安全的连接. 一.Windows环境下生成SSH key且连接GitHub 第一步.看看是否存在SSH密钥(keys) 首先,我们需要看看是否看看本机是否存在SSH keys,打开Gi