批量的单向的ssh 认证

<pre name="code" class="python">if [  ! $# -eq 2  ] ;then
echo "请输入用户密码以空格分开"
exit
else
ssh-keygen -t rsa
#用户名
uname="$1"
#密码
passwd="$2"
fi

#执行检测并安装expect模块
ep=`rpm -qa | grep expect` 

if [ -z $ep   ] ; then
 echo "检测到你的系统,没有安装expect模块,准备执行安装"
 sleep 2
 yum install -y expect

else
 echo "已经安装expect模块,3秒后,开始执行ssh文件同步"
 sleep 3
fi

#公钥无ssh认证模块
cat hosts | while read host
do

echo "当前正在向$host上传输ssh文件"
expect <<EOF
spawn  scp -r .ssh/  $host:/$uname
expect {
"*yes/no" {send "yes\r" ;exp_continue}
"*password:" {send "$passwd\r" ;exp_continue  }
}

EOF

echo "当前正在$host上进行公钥认证....."
sleep 2
expect <<EOF
spawn  ssh-copy-id  -i .ssh/id_rsa.pub $host
expect {
"*yes/no" {send "yes\r" ;exp_continue}
"*password:" {send "$passwd\r" ;exp_continue  }
}

EOF

echo "认证成功...."

done

#切换root权限进行hosts文件分发

echo "同步本机的hosts文件到各个机器上"

sleep 1

#同步本机的hosts文件到其他各个机器上

host文件内容:

192.168.32.84上执行这个文件,

demo:/root# cat hosts
192.168.32.142
192.168.32.143

此时从192.168.32.84上发起,可以远程ssh :

反过来在192.168.32.143上执行就不可以:

wze-haproxy:/root# ssh [email protected] date
[email protected]'s password:
				
时间: 2024-10-14 06:05:42

批量的单向的ssh 认证的相关文章

基于openssl的单向和双向认证

1.前言 最近工作涉及到https,需要修改nginx的openssl模块,引入keyless方案.关于keyless可以参考CloudFlare的官方博客: https://blog.cloudflare.com/keyless-ssl-the-nitty-gritty-technical-details/?utm_source=tuicool&utm_medium=referral. 在openssl的基础上修改私钥校验过程,因此需要对openssl的认证认证流程需要熟悉一下.SSL中涉及到

SSL单向、双向认证的过程

在昨天的面试过程中谈单之前开发使用的EJBCA,对于认证这块我不是很了解内部的过程,晚上回来看了下  大致如下: 认证就是发消息的客户端和服务端之间相互认证确认的过程,又分为单向和双向认证:大概是下面这样的过程 一.单向认证: 1.客户端向服务器发送消息,服务器接到消息后,用服务器端的密钥库中的私钥对数据进行加密,然后把加密后的数据和服务器端的公钥一起发送到客户端: 2.客户端用服务器发送来的公钥对数据进行解密,然后在客户端使用服务器发送过来的公钥对数据加密传给服务器端,服务器用私钥对数据进行解

SSH认证原理和批量分发管理

SSH密码认证原理 几点说明: 1.服务端/etc/ssh目录下有三对公钥私钥: [[email protected] ssh]# ls moduli ssh_config sshd_config ssh_host_dsa_key ssh_host_dsa_key.pub ssh_host_key ssh_host_key.pub ssh_host_rsa_key ssh_host_rsa_key.pub 其中,ssh_host_key和ssh_host_key.pub 用于ssh协议1版本:其

ssh 认证登录

SSH无密码登录 说明:每次登录需要输入Linux服务器的密码特麻烦而且还遇到暴力破解的安全性问题...因此做了一个简单的防护或便捷. 步骤如下 ssh-keygen -t rsa 通过ftp工具将/root/.ssh/下将id_rsa.pub 拷贝出来.(如我用的是xshell) cp -p id_rsa.pub authorized_keys 修改ssh 配置文件 vim /etc/ssh/sshd_config 47 RSAAuthentication yes 48 PubkeyAuthe

debian下使用gitosis+gitweb搭建SSH认证的git服务器

搭建完成Git服务器后,需要使用两台机器进行测试,一台机器作为服务器端server,一台服务器作为客户端client.整个系统,需要三个计算机账户,这里假设server端的账户名为git,client端需要一个管理员gitadmin,一个开发者gituser.这里的环境,使用两台处于同一局域网内的两台机器作为server以及client,其中server端系统为debian 6,client端为fedora 16.1    建立server端账户git,用于安装git相关的服务. sudo us

github添加ssh认证

总概:在使用git的时候,和目标仓库建立关系有两种方式https,ssh.一般用的是https认证(这样简单方便),但有个缺点,pull,push等操作需要频繁输入用户验证.虽然可以把用户验证账号密码保存在本地(这会导致一个新问题,本地存储使用的是明文-sourcetree),这个时候可以采用ssh的方式连接,能同时解决用户频繁验证和账号安全问题 实现步骤(windows7环境) 1 首先本地安装git,具体百度 2 生成公私钥 ssh-keygen -t rsa -t 指定密钥类型,默认是 r

Jenkins - SSH认证方式拉取Git代码

1.本地生成密钥 [[email protected] ~] ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been sa

路由交换学习第四天:路由器配置SSH认证登陆

华为路由器1:<Huawei>sys //进入系统视图[Huawei]interface g0/0/0 //进入g0/0/0配置[Huawei-GigabitEthernet0/0/0]ip address 202.100.1.1 30 //配置IP地址为202.100.1.1 30[Huawei-GigabitEthernet0/0/0]q[Huawei]aaa //进入aaa[HW-R1-aaa]local-user huawei password cipher huawei123 //创

git仓库服务器SSH认证示例

git在用户管理及管理上,下面上三种解决办法: 如果需要团队里的每个人都对仓库有写权限,又不能给每个人在服务器上建立账户,那么提供 SSH 连接就是唯一的选择了.我们假设用来共享仓库的服务器已经安装了 SSH 服务,而且你通过它访问服务器.    有好几个办法可以让团队的每个人都有访问权. 第一个办法是给每个人建立一个账户,直截了当但过于繁琐.反复的运行 adduser 并且给所有人设定临时密码可不是好玩的.     第二个办法是在主机上建立一个 git 账户,让每个需要写权限的人发送一个 SS