zoukankan      html  css  js  c++  java
  • Linux服务器实现无密认证

    环境

    t4 192.168.10.11
    t5 192.168.10.12

    需求

    # 实现t4能够无密连接t5
    [root@t4 ~]# ssh-keygen -t rsa
    [root@t4 ~]# ssh-copy-id -i root@t5

    解决交互式需求

    # 单台做无密出现如下情况
    a)
    # 问题描述
    当服务器ssh连接时,要输入“yes”进行确认,如下:
    [root@t4 .ssh]# ssh t5
    The authenticity of host 't5 (192.168.10.132)' can't be established.
    ECDSA key fingerprint is 69:e5:9a:75:f4:72:52:77:85:21:70:2a:a8:85:f9:70.
    Are you sure you want to continue connecting (yes/no)?
    # 问题解决(以下两种方式选其一即可)
    方式一:
    [root@t4 .ssh]# ssh -o StrictHostKeyChecking=no t5
    方式二:
    在当前用户目录.ssh下创建config文件,添加如下内容
    StrictHostKeyChecking=no

    b)
    # 问题描述
    当服务器ssh连接时,要手动输入密码。
    # 问题解决
    安装sshpass
    源码下载地址:http://sourceforge.net/projects/sshpass/
    安装步骤:
    # tar -zxvf sshpass-1.06.tar.gz
    # cd sshpass-1.06
    # ./configure
    # make && make install
    [root@t4 ~]# sshpass -p '000000' ssh-copy-id -o StrictHostKeyChecking=no root@t5

    或者

    若修改配置,则用下面命令(对应a问题的方式二):
    [root@t4 ~]# sshpass -p '000000' ssh-copy-id root@t5

    脚本实现批量化无密

    # 将域名或IP地址记录在remote-hosts文件中,运行下面脚本就能批量的将公钥复制到远程主机中。

    for host in $(cat remote-hosts)
    do
        sshpass -p 'YOUR_PASSWORD' ssh-copy-id -o StrictHostKeyChecking=no root@${host}
    done

    注:上面的脚本试用于远程主机的密码都是相同。

    # 若remote-hosts文件文件为以下格式,
    10.10.10.10:2222:YOURPASSWORD

    则脚本如下:

    for host in $(cat remote-hosts)
    do
        ip=$(echo ${host} | cut -f1 -d ":")
        port=$(echo ${host} | cut -f2 -d ":")
        password=$(echo ${host} | cut -f3 -d ":")
        sshpass -p ${password} ssh-copy-id -p ${port} -o StrictHostKeyChecking=no root@${ip}
    done    
  • 相关阅读:
    SPLAY,LCT学习笔记(五)
    SPLAY,LCT学习笔记(四)
    SPLAY,LCT学习笔记(三)
    NOI 2012 随机数生成器
    SPLAY,LCT学习笔记(二)
    SPLAY,LCT学习笔记(一)
    bzoj 1503 郁闷的出纳员
    bzoj 1112 poi 2008 砖块
    bzoj 1064 noi2008 假面舞会题解
    数论知识点总结(noip范围)
  • 原文地址:https://www.cnblogs.com/kazihuo/p/7413265.html
Copyright © 2011-2022 走看看