作用:

把当前机器的ssh公钥拷贝到其它机器。以实现从当前机器能够ssh无password登陆到其它机器

用法:

1)把要加入的ip地址写入到一个文件里。比方host

2)把脚本保存为sh文件,如 install_ssh.sh 设置可运行权限

3)改写脚本中的password设置。眼下仅仅支持固定几个password。

4)  运行命令

sh install_ssh.sh <host

代码:

#!/bin/sh





auto_ssh_copy_id() {

  local HOST=$1

  local PASSWD=$2

  expect -c "set timeout -1;

    spawn ssh-copy-id root@$HOST

    expect {

      *publickey* {exit 1;}

      *(yes/no)* {send yes\r; exp_continue;}

      *password* {send \"$PASSWD\r\"; exp_continue;}

      ** {send \"$PASSWD\r\"; exp_continue;}

    }";

}





      #eof {exit 0;}

passwd1='noSafeNoWork@2014'

passwd2='SafetyFirst@426'

passwd3='ddd@2008'

passwd4='123456'

passwd5='asdasd'

passwd6='12345'

while read line; do

  echo "$line" >&2

  isSucceed='FALSE'

  for pw in $passwd1 $passwd2 $passwd3 $passwd4 $passwd5 $passwd6

  do

    if auto_ssh_copy_id "$line" $pw

    then

        isSucceed='TRUE'

        break;

    fi

  done





  if [ $isSucceed != 'TRUE' ]; then

    echo 'NOTSUCC' $line

  fi

done

Linux 批量建立信任关系,实现ssh无password登陆的脚本的更多相关文章

  1. 两台linux之间建立信任关系,实现免密码ssh远程登录或scp数据上传

    两台linux之间建立信任关系,实现免密码远程登录或数据上传 1.执行ssh-keygen命令,生成建立安全信任关系的证书: linux1上:执行命令  ssh-keygen  -t rsa 在程序提 ...

  2. linux机器间建立信任关系

    linux机器间建立信任关系 如何建立信任关系 在shell脚本中,需要使用scp命令将本地的文件复制到另一台机器中备份.但通常执行scp命令后都需要输入用户密码,这样在定时自动执行shell脚本中就 ...

  3. SSH无password登陆配置

    摘录一 在192.168.42.142机器上 1)执行:ssh-keygen -t rsa 2)然后拍两下回车(均选择默认) 3)执行: ssh-copy-id -i /root/.ssh/id_rs ...

  4. ssh两台机器建立信任关系无密码登陆

    在建立信任关系之前先看看基于公钥.私钥的加密和认证. 私钥签名过程 消息-->[私钥]-->签名-->[公钥]-->认证 私钥数字签名,公钥验证 Alice生成公钥和私钥,并将 ...

  5. linux建立信任关系

    (1).切换到需要建立信任关系的用户(2).执行命令:ssh-keygen  -d,然后一直回车.该命令会在用户home目录下生成一个隐藏的.ssh目录.目录里面有两个文件:id_dsa.id_dsa ...

  6. 基础连接已经关闭: 未能为SSL/TLS 安全通道建立信任关系

    #region private static bool ValidateServerCertificate 解决Error"基础连接已经关闭: 未能为SSL/TLS 安全通道建立信任关系.& ...

  7. C#动态调用webService出现 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。

    这里因为的原因是https请求要检查证书,有些证书不正确的,网页不会正常展示内容,而会返回链接不安全,是否继续.不安全的链接是否继续. 详情参考: C#动态调用webService出现 基础连接已经关 ...

  8. XmlDocument.Load(url) url是https远程时,报错" 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。" "根据验证过程,远程证书无效。"

    XmlDocument.Load(url)  url是https远程时,报错" 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系."   "根据验证过程, ...

  9. [C# | WinCE | Solution] 在 WinCE 上访问 SSL 加密后的 WCF SOAP 服务接口出现“未能与远程服务器建立信任关系”

    Scenario: 服务器的 SOAP 使用了 GeoTrust 签名的 EV 证书,WinCE调用时出现“未能与远程服务器建立信任关系”的错误.原因是该 WinCE 设备信任的证书包括 Global ...

随机推荐

  1. shell more less cat

    cat 连续显示.查看文件内容 more 分页查看文件内容 less 分页可控制查看文件内容 通俗点说: cat一次性把文件内容全部显示出来,管你看不看得清,显示完了cat命令就返回了,不能进行交互式 ...

  2. 转: Nginx proxy讲解精华文章集

    1. 详细,参数说明很好 https://blog.lyz810.com/article/2016/06/ngx_stream_proxy_module_doc_zh-cn/

  3. Android ProgressBar具体解释以及自己定义

       版本号:1.0 日期:2014.5.16 版权:© 2014 kince 转载注明出处   这一次主要说一下Android下的进度条.为什么是它呢,由于最近被其各种美轮美奂的设计所倾倒,计划逐渐 ...

  4. 7. Add song to Phone

    package com.example.thenewboston; import android.app.Activity; import android.media.MediaPlayer; imp ...

  5. 破解无线网络密码-BT3如何使用3

    BT3 虚拟机 SNOOPWEP2 破解无线网络WEP密钥图解 1.下载BT3 光盘映像文件(ISO格式),比如:bt3-final.iso: 用WinISO 或 UltraISO(这个还支持DVD ...

  6. Android的startActivityForResult不起作用

    之前startActivityForResult一直用的好好的,今天发现怎么也不起作用.检查后发现有两点影响了. 1.android:launchMode="singleTask" ...

  7. 动态设置js的属性

    目标:js的属性名能够使用变量 举例:js对象object,当赋给该对象属性的时候能够採用下面方式 var object; object.prop1 = "value1"; obj ...

  8. RAM调优之日志分析

    D/dalvikvm: <GC_Reason> <Amount_freed>, <Heap_stats>, <External_memory_stats> ...

  9. Socket实现服务器与客户端的交互

       连接过程:   根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认. (1)服务器监听:是服务器端套接字并不定位具体的客户端套接 ...

  10. python之函数用法bin()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法bin() #bin() #说明:一个整数转换为一个二进制字符串 ''' bin(.. ...