ssh批量处理免密登陆

使用此脚本需要安装一个工具:sshpass

步骤:
1、先将该安装包上传到服务器上
2、解压
tar -xvf sshpass-1.05.tar.gz

3、进入
cd sshpass-1.05

4、编译安装
./configure
make
make check #这是检测编译是否有误,如果没有提示信息就证明编译成功
make install
#说明:该软件具有卸载功能,可直接在该目录中执行make clean 可自动卸载

5、可以使用sshpass命令了

#使用前请先将存放IP地址和密码的文件以如下格式存放
172.100.0.1:test1
172.100.0.2:test2

#IP地址和密码之间用":"号隔开,如果IP与密码之间是用空格间隔请使用如下命令进行更改:sed -i.bak ‘s/ /:/g‘ pass.txt 原有的文件会以.bak结尾的文件保存备份,执行之前确保该文件除了IP与密码之间其他地方不要有空格

将该脚本上传到服务器后记得添加执行权限:chmod a+x sshautopass.sh

脚本如下:
#!/bin/bash
#使用前请先将存放IP地址和密码的文件以如下格式存放
#172.100.0.1:test1
#172.100.0.2:test2
#IP地址和密码之间用":"号隔开,如果IP与密码之间是用空格间隔请使用如下命令进行更改:sed -i.bak ‘s/ /:/g‘ pass.txt 原有的文件会以.bak结尾的文件保存备份,执行之前确保该文件除了IP与密码之间其他地方不要有空格

A=awk ‘{print $1}‘ /srv/ansible/jiaoben/pass.txt
B=echo $A

for key in $B; do
IP=echo $key |cut -d : -f1
pass=echo $key |cut -d : -f2

cat /root/.ssh/id_rsa.pub | /usr/local/bin/sshpass -p $pass ssh -o "StrictHostKeyChecking no" -p 22 $IP "mkdir -p /root/.ssh;cat >> /root/.ssh/authorized_keys" &> /dev/null

done

unset A B IP pass

原文地址:http://blog.51cto.com/19940919/2166750

时间: 2024-11-02 08:01:44

ssh批量处理免密登陆的相关文章

ssh免密登陆

ssh无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 系统:CentOS7主机:A(192.168.66.100):B(192.168.66.110)为方面,用户都为root 1.在A下生成公钥/私钥对命令:    ssh-keygen -t rsa -P ''-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车.它在/root下生成.ssh目录,其他用户的话在对应的家目录下(/home/

linux上如何设置ssh免密登陆

一.linux上ssh链接 1.功能说明 scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下.scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下: scp 远程用户名@IP地址:文件的绝对路径 本地Linux系统路径 scp 本地Linux系统文件路径 远程用户名@IP地址:远程系统文件绝对路径名 scp使用第一种格式是将远程Linux系统上的某个文件或者目录拷贝到本地Linux系统上来,使用第二种是将本地的某个文件或者目录拷贝

SSH之免密登陆

又来了,上头让小轩我在服务器中写一个Shell脚本,主要用来在机器B中定时备份机器A中的一些文件.那么,小轩是怎么想的呢? 在小轩的知识库里,现在有scp和ssh两个玩具.别的还真没有其他什么东西了.那就想直接用scp去远程复制好了,但是scp复制的时候还要输入密码.那就搞搞让使用scp的时候不用输入密码好了. 以下进入正文 忽略ssh安装scp安装过程.默认认为当前机器与远程机器含有完整的ssh,scp功能 首先在机器B中使用ssh-keygen -t rsa 命令 (想来玩git的童鞋应该知

SSH+RSA实现远程免密登陆

知识部分简述:SSH是一种安全通道协议,主要用来实现字符界面的远程登陆.远程复制等功能.SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登陆是输入的用户口令.SSH和TELNET.RSH等提供了更好的安全性.OpenSSH是实现SSH远程登陆的开源软件项目,适用于Linux.UNIX系统,其官网地址为http://www.openssh.com.RSA加密算法是一种非对称加密算法.对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠

shell脚本配置ssh免密登陆

通过shell脚本配置免密登陆,分为两个脚本,一个是配置文件config.env,一个是正式脚本sshkey.sh. # config.envexport HOST_USER=(root) export PASSWD=(a) export SSH_HOST=(192.168.165.15 192.168.165.16 192.168.165.165) 以上congfig.env文件中,SSH_HOST参数可配置多个IP,可配置不同的用户 sshkey.sh脚本内容大致如下: 在本地用rsa加密方

ssh免密登陆权限问题

问题: 添加了authorized_keys还是不能免密登陆. 思路: 检查端口是否开放,是否允许root用户登录,尝试重启ssh服务... 最有可能的还是权限问题,出现Permission denied...... 下面两个目录的所有权必须是user,所属组也应该是user,权限必须为700 \home\user \home\user.ssh 下面公钥文件的所有权必须是user,所属组也应该是user,权限必须为644 \home\user.ssh\authorized_keys 保证每个目录

解决Centos6.4集群配置ssh免密登陆仍然需要输入密码问题

遇到的问题展示:   Ssh免密登陆配置成功之后仍然需要输入密码,找了很多方法,最后已解决,现把解决办法的详细过程记录下来,希望对你有帮助...       解决办法: 一.准备工作 1.安装ssh服务 执行rpm -qa | grep ssh 若无返回ssh服务,则需要执行下列语句进行安装 sudo yum install openssh-clients sudo yum install openssh-server 2.打开本机的ssh配置文件   删除以下内容每行开头的注释"#"

ssh免密登陆(简单快捷)

介绍免密登陆配合下边这张图可以了解下过程: 假设现在A要通过免密登陆B 在A上的操作: 1.终端输入ssh-keygen (后边可以指定加密算法:-t 算法,如果不指定就是默认的rsa) 原理: 首先通过ssh-keygen命令生成密钥对(即公玥和私钥) 生成后密钥对会自动保存到/root/.ssh目录下,此目录下有两个文件即: id_rsa(私钥),id_rsa.pub(公钥) 2.终端输入ssh-copy-id 要连接的ip地址(如果本地/etc/hosts配置文件中有该地址的别名也可以用别

使用rsync基于ssh免密登陆进行备份或目录同步

日常工作中有很多的备份工作,rsync是一个很不错的工具,尝试使用基于ssh免密登陆的方式进行备份,测试成功,是可行且方便的方法,撰文记之,以备后用: 1.A主机root用户对B主机root用户做ssh免密登陆,此过程不再赘述,请自行百度. 2.A主机安装rsync命令:yum install rsync -y 3.在A主机根目录下创建/ceshi目录,B主机根目录下也创建/ceshi目录,并touch一些测试文件. 4.执行命令:rsync -a -e "ssh" 192.168.2