linux免密登录配置
第一步:安装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免密登录配置的更多相关文章
- linux下免密登录配置
1.首先大家先开三台虚拟机 2.回到首层. 2.1:编辑文件: vim /etc/ssh/sshd_config 3:在master的linux上生成ssh密钥: ssh-keygen -t r ...
- Linux免密登陆配置(互信配置)
Linux免密登陆配置(互信配置) 1.生成当前用户的秘钥文件 [oracle@localhost .ssh]$ ssh-keygen -t rsa 2.配置远程登录用户的公钥文件 将公钥文件拷贝至另 ...
- SSH免密登录配置
SSH免密登录配置 本地生成密钥文件: $ ssh-keygen 输出: Generating public/private rsa key pair. Enter file in which to ...
- Linux主机之间ssh免密登录配置方法
由于公司的生产环境有很多台Linux的CentOS服务器, 为了方便机子(假设两台机子A,B)互相之间免密ssh, scp命令操作,配置如下 1. 在A.B上分别创建本机的公钥和私钥,输入命令后连续三 ...
- linux免密登录ssh验证配置方法及常见错误解决
目标:从服务器A免密登录服务器B [配置方法] 1.在服务器A生成密钥文件,直接使用以下命令: ssh-keygen 中间遇到输入内容一路回车即可,完成后会在 ~/.ssh 目录下生成两个文件:id_ ...
- (11)ssh免密登录配置
***在Linux命令行中登录到另一台虚拟机(需要用到ssh协议) Linux中默认有ssh的服务器端和客户端,客户端的名字就叫ssh 前提是当前使用的用户名在待连接的虚拟机中存在 格式: ssh ...
- Cmder下ssh免密登录配置
1.本地生成ssh-key 在本地cmder终端下运行下面的命令生成ssh的公钥和私钥文件: ssh-keygen -t rsa 其中,.ssh/id_rsa为私钥文件,留在本地使用,而.ssh/id ...
- ssh登录原理及免密登录配置
ssh登录原理参考: https://www.cnblogs.com/hukey/p/6248468.html ssh登录有两种方式: 1):用户名密码登录 2):基于秘钥的登录 ssh免密登录指的就 ...
- ssh-keygen Linux 免密登录
一.选择算法和密钥大小 rsa - 基于分解大数的难度的旧算法.RSA建议密钥大小至少为2048位,4096位更好.RSA正在变老,并且在保理方面取得了重大进展.可能建议选择不同的算法.在可预见的将来 ...
随机推荐
- IOS设计模式浅析之单例模式(Singleton)
说在前面 进入正式的设计模式交流之前,扯点闲话.我们在项目开发的过程中,经常会不经意的使用一些常见的设计模式,如单例模式.工厂方法模式.观察者模式等,以前做.NET开发的时候,认真拜读了一下程杰老师的 ...
- 我的第三个java程序 两数相加
import java.util.Scanner; public class Test { public static void main(String [] args) { Scanner sc = ...
- oracle高水位
oracle高水位http://www.cnblogs.com/chuyuhuashi/p/3548260.htmlhttp://blog.csdn.net/wyzxg/article/details ...
- 在MathType中输入罗马数字的方法
MathType作为数学公式编辑器的编辑功能非常的强大,其中包含了许许多多各种各样的数学符号,甚至标记符号也很全面.编辑公式时有时为了让公式看起来会更有条理,会进行一定的序号设置,当然也可以对公式进行 ...
- 更新mac系统和更新到Xcode7.3版本出现的: cannot create __weak reference in file using manual reference counting
之前的编程没有遇到过,应该是苹果官方那边又做了新规吧. 不过不要紧,只要根据这个就能解决报错问题. Set Build Settings -> Apple LLVM 7.1 - Languag ...
- wifidog 认证
首先简介一下什么是Portal认证.Portal认证.通常也会叫Web认证.未认证用户上网时,设备强制用户登录到特定站点,用户能够免费訪问当中的服务.当用户须要使用互联网中的其他信息时,必须在门户站点 ...
- 微信小程序结构分析
1.Console页面:控制台信息页两个作用: (1)开发直接输入代码并且进行调试: (2)显示小程序的错误输出: 2.Sources页面:源文件调试信息页,用于显示当前项目的脚本文件. 3.Netw ...
- 转:: 刺鸟:用python来开发webgame服务端(4)
来源:http://ciniao.me/article.php?id=14 --------------- 刺鸟原创文章,转载请注明出处 前面的工作都已准备就绪,现在我们得来看看服务端怎么和客户 ...
- drawableRightset 和 CompoundDrawables
android:drawableRight="@drawable/check_down" 在代码中的用法是: Drawable drawable = getResources(). ...
- APP全局异常捕获,并保存本地文件
public class CrashHandler implements Thread.UncaughtExceptionHandler { public static final String TA ...