使用expect实现ssh免密码登陆

使用expect向ip列表文件中的ip主机,执行ssh-copy-id命令复制密钥,以实现ssh免密登陆。

安装expect

yum install -y expect

生成密钥对

ssh-keygen -t rsa -P ‘‘ -f ~/.ssh/id_rsa

脚本

//shell脚本内容
# -------------------------
vim ssh-copy-id.sh

#!/bin/bash
#
[ $# -gt 0 -a -f "$1" ] || exit 1

cat $1 | while read ip ;do
    user=‘root‘
    password=‘centos‘

    expect ./ssh-copy-id.exp $ip $user $password
done

//expect脚本内容
-------------------------
vim ssh-copy-id.exp

#!/usr/bin/expect
set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
set timeout 10
spawn ssh-copy-id [email protected]$ip
expect {
    "yes/no" { send "yes\n";exp_continue }
    "password" { send "$password\n" }
}
expect eof

//iplists文件
-------------------------
vim iplists.txt

192.168.10.101
192.168.10.102
192.168.10.103
192.168.10.104
192.168.10.105

//调用脚本
sh ssh-copy-id.sh iplists.txt

原文地址:https://www.cnblogs.com/haona_li/p/10182703.html

时间: 2024-08-29 00:44:20

使用expect实现ssh免密码登陆的相关文章

ubuntu配置SSH免密码登陆

ubuntu配置SSH免密码登陆 1.安装SSH:  2.是否生成 .ssh 目录: 3.如果没有生成,自己手动创建一个  .ssh 目录: 生成的 .ssh 目录: 4.生成公钥与私钥: 效果如下: 5.将公钥加入到用于认证的公钥文件中: 6.免密码登陆: 效果: Ubuntu 免密码登陆,SSH配置完.

ssh免密码登陆 - 服务器建立信任关系

假设机器A,B,C,要建立A为主,可以免密码直接ssh进入B,C.操作如下: 假设只用用户yimr建立信任,则使用yimr用户登陆主机A,执行如下操作: 产生公钥和私钥 ssh-keygen -t rsa 然后,在/home/用户/.ssh目录下,产生id_rsa, id_rsa.pub文件 将公钥复制到BC节点 scp .ssh/id_rsa.pub B:/home/用户名/.ssh/A.pub 进入BC节点,将公钥放在authorized_keys文件中 cat .ssh/A.pub >>

中小企业最基本的实用的ssh-key秘钥方案之ssh免密码登陆实战  

一.实验环境 本次实验需至少两台机器,本文采用三台机器做讲解.        服务器       ip     是否为分发机     nfs-server 10.0.0.11          是   web-client01 10.0.0.12          否   web-client02 10.0.0.13          否 二.实施步骤 1.添加系统账号(即普通用户)分别使用了三台机器,一台为分发机,另两台为被分发机.在企业环境中,很多用户直接用root来操作,这样好很不规范,权

设置SSH 免密码登陆

设置dns: vi /etc/hosts 最后一行追加; ip 主机名 设置SSH 免密码登陆: telnet 远程连接,SSH(secure shell)加密的通信协议,加密方式:rsa或者dsa root 目录下   ls -a  有.ssh 文件(存放密钥) ssh-keygen -t rsa  (三次回车) cd .ssh/    cp  id_rsa.pub  authorized_keys(生成授权文件) .ssh 文件夹rw-r--r--(g和0没有写的权限,u有写的权限) had

SSH 免密码登陆失败的一种原因,StrictModes

偶然因素帮别人配置ssh免密码登陆失败, ~/.ssh目录权限700,其下所有文件权限600,却依然失败.ssh -v 后发现密钥验证未通过,使用密码验证. 后来还是搜索得来,有人把ssh的StrictModes关闭就可以了,赶紧试了一下,果然可以. 于是搜了一下StrictModes限制的什么, 找到这么一段话 StrictModes no #修改为no,默认为yes.如果不修改用key登陆是出现server refused our key(如果StrictModes为yes必需保证存放公钥的

hadoop学习笔记(五)——全分布模式下SSH免密码登陆的实现

1)  设置3台机器的网络配置,并统一用户名,root除外 master:192.168.2.10 slave1:192.168.2.11 slave2:192.168.2.12 2)  SSH免密码登陆思想 因为三个节点要相互访问,所以,三个节点都是客户端,也都是服务器端,我们分别在三个节点上创建一对密钥文件,密钥文件包括公钥文件(~/.ssh/id_rsa.pub)和私钥文件 (~/.ssh/id_rsa). 客户端在使用ssh登录到其他节点上的时候,ssh会发送私钥去和其他节点上的公钥去匹

ssh免密码登陆设置时Authentication refused: bad ownership or modes错误解决方法

问题 设置ssh免密码登陆的时候,发现有一些机器设置不生效.有一些机器正常. 跟踪 登陆目标机器,查看sshd的日志信息.日志信息目录为,/var/log/secure你会发现如下字样的日志信息.Jul 22 14:20:33 v138020.go sshd[4917]: Authentication refused: bad ownership or modes for directory /home/xinhailong 原因 sshd为了安全,对属主的目录和文件权限有所要求.如果权限不对,

SSH 免密码登陆

1.在A机生成公钥和私钥 ssh-keygen -t rsa –P 一般采用的ssh的rsa密钥: id_rsa 私钥 id_rsa.pub 公钥 下述命令产生不同类型的密钥 ssh-keygen -t dsa   2.把A机下的/root/.ssh/id_rsa.pub 复制到B机的 /root/.ssh/authorized_keys文件里,先要在B机上创建好 /$HOME/.ssh 这个目录,用scp复制. scp [email protected]:/$HOME/.ssh/id_rsa.

Jenkins进阶系列之——09配置Linux系统ssh免密码登陆

ssh认证的完整描述:https://www.ibm.com/developerworks/cn/linux/security/openssh/part1/ 说明:点我去查看 今天我们只说生成ssh的key,从而达到免密码登陆的目的. 不知道ssh是什么的自己看说明.好了,不废话了. 系统:CentOS 5.8 确认用户 确认当前用户是你需要的用户! $ whoami froad #froad用户,根据你自己的需求选择用户.我这儿用froad用户演示. 生成key $ cd ~ #回到用户目录,