第一步:安装openssh-clients
  yum install -y openssh-clients.x86_64
第二步:生成密钥
  ssh-keygen
第三步:拷贝公钥到其他机器
  ssh-copy-id hostname

使用脚本批量配置每台机器互相免密登录

  环境:centos6.10

  安装脚本编程交互工具expect

    yum install -y expect

  脚本编写,小例子

  

  generatekey.expect

#!/usr/bin/expect
spawn ssh-keygen
expect "*id_rsa*"
send \n
expect {
"*verwrite*" {
send y\n
expect "*passphrase*"
send \n
expect "*again*"
send \n
}
"*assphrase*" {
send \n
expect "*again*"
send \n
}
}
expect "*randomart*"
send_user "generate successful\n"

  

  copykey.expect

#!/usr/bin/expect
set from [lindex $argv 0]
set hostname [lindex $argv 1]
spawn ssh-copy-id $from@$hostname
expect {
"*assword*" { # "*password*"和左大括号之见一定要留间隔,否则不能识别
send wanger\n
expect "*check*"
send_user "add to $hostname successful!\n"
}
"*yes/no*" {
send yes\n
expect "*assword*"
send wanger\n
expect "*check*"
send_user "add to $hostname successful!\n"
}
"*check*" {
send_user "already added to $hostname!\n"
}
}

 

  machines:把所有机器的hostname添加到这个文件

tdh1
tdh2
tdh3
tdh4

 

  passphraseless_onetomutiple.sh

#!/bin/bash
dirname=/home/wanger/code/passphraseless
$dirname/generatekey.expect
input="$dirname/machines"
while read -r hostname
do
$dirname/copykey.expect $1 $hostname
done < $input

  

  passphraseless_all

#!/bin/bash
current_host=`hostname`
dirname=/home/wanger/code/passphraseless
input=$dirname/machines
# echo $current_host
$dirname/passphraseless_onetomutiple.sh wanger for hostname in `awk '$1' $input`
do
if [ $hostname != $current_host ];
then
scp -r ../passphraseless wanger@$hostname:/home/wanger/code/
$dirname/scp.expect $hostname
ssh wanger@$hostname $dirname/passphraseless_onetomutiple.sh wanger
fi
done

  

  给执行权限后,在任意一台机器上执行./passphraseless_all即可

root版本配置代码在github上: https://github.com/cqdxwjd/code/tree/master/linux/shell/passphraseless_root

linux免密登录配置的更多相关文章

  1. linux下免密登录配置

    1.首先大家先开三台虚拟机 2.回到首层. 2.1:编辑文件:    vim /etc/ssh/sshd_config 3:在master的linux上生成ssh密钥: ssh-keygen -t r ...

  2. Linux免密登陆配置(互信配置)

    Linux免密登陆配置(互信配置) 1.生成当前用户的秘钥文件 [oracle@localhost .ssh]$ ssh-keygen -t rsa 2.配置远程登录用户的公钥文件 将公钥文件拷贝至另 ...

  3. SSH免密登录配置

    SSH免密登录配置 本地生成密钥文件: $ ssh-keygen 输出: Generating public/private rsa key pair. Enter file in which to ...

  4. Linux主机之间ssh免密登录配置方法

    由于公司的生产环境有很多台Linux的CentOS服务器, 为了方便机子(假设两台机子A,B)互相之间免密ssh, scp命令操作,配置如下 1. 在A.B上分别创建本机的公钥和私钥,输入命令后连续三 ...

  5. linux免密登录ssh验证配置方法及常见错误解决

    目标:从服务器A免密登录服务器B [配置方法] 1.在服务器A生成密钥文件,直接使用以下命令: ssh-keygen 中间遇到输入内容一路回车即可,完成后会在 ~/.ssh 目录下生成两个文件:id_ ...

  6. (11)ssh免密登录配置

    ***在Linux命令行中登录到另一台虚拟机(需要用到ssh协议) Linux中默认有ssh的服务器端和客户端,客户端的名字就叫ssh 前提是当前使用的用户名在待连接的虚拟机中存在 格式:  ssh ...

  7. Cmder下ssh免密登录配置

    1.本地生成ssh-key 在本地cmder终端下运行下面的命令生成ssh的公钥和私钥文件: ssh-keygen -t rsa 其中,.ssh/id_rsa为私钥文件,留在本地使用,而.ssh/id ...

  8. ssh登录原理及免密登录配置

    ssh登录原理参考: https://www.cnblogs.com/hukey/p/6248468.html ssh登录有两种方式: 1):用户名密码登录 2):基于秘钥的登录 ssh免密登录指的就 ...

  9. ssh-keygen Linux 免密登录

    一.选择算法和密钥大小 rsa - 基于分解大数的难度的旧算法.RSA建议密钥大小至少为2048位,4096位更好.RSA正在变老,并且在保理方面取得了重大进展.可能建议选择不同的算法.在可预见的将来 ...

随机推荐

  1. abp主机用户不过滤租户id

    using (_unitOfWorkManager.Current.DisableFilter(DataFilterUtil.NowDisableFilter(AbpSession))) { var ...

  2. Java基础09 类数据与类方法(转载)

    我们一直是为了产生对象而定义类(class)的.对象是具有功能的实体,而类是对象的类型分类.这是面向对象的一个基本概念.   static数据成员 有一些数据用于表述类的状态.比如Human类,我们可 ...

  3. Spring MVC单选按钮

    以下示例显示如何在使用Spring Web MVC框架的表单中使用单选按钮(RadioButton).首先使用Eclipse IDE来创建一个WEB工程,并按照以下步骤使用Spring Web Fra ...

  4. 循环杀死Mysql sleep进程脚本

    #!/bin/sh while : do n=`mysqladmin processlist -uadmin -p***|grep -i sleep |wc -l` date=`date +%Y%m% ...

  5. package-cleanup用法

    今天升级时候遇到"you could try using package-cleanup --problems to work around the problem ...", 本 ...

  6. Observable观察者模式的使用

    今天我们公司封装的类中没有加上Observable观察者模式,但是很多地方需要用到Observable观察者模式 接下来就向大家介绍一下我的使用吧! 在介绍之前我们写了一个方法 public clas ...

  7. 构造三层时报错“程序 “D:\MyTest\....”不包含适合于入口点的静态"Main"方法”

    错误 1 程序“D:\MyTest\EBookShop\Model\obj\x86\Debug\Model.exe”不包含适合于入口点的静态“Main”方法 原因:原来创建项目的时候,用的是“空项目” ...

  8. (int)()和int()强制类型转换

    (int)()这个是c语言的强制转换,众所知周 int(),这种理解靠谱点 Class A { A(int i){} } 调用int类型的构造函数然后转换的 其实都可以转换.

  9. Java+selenium自动化测试基础

    Java+selenium maven配置 maven的配置,但还需要建立maven的本地库,修改apach-maven的setting.xml http://www.cnblogs.com/haoa ...

  10. DataTable数据筛选

    DataView view = newDt.DefaultView;view.Sort = "Description asc,replyEnd desc";DataTable ta ...