• linux实现SSH免密登录设置,以及shell脚本实现


    原创/朱季谦

    最近在搭建linux集群,做了SSH免密登录的设置,正好把过程记录一下:

    一.用搭建好的两台虚拟机做演示,A机器:192.168.200.129,B机器:192.168.200.128

    二.分别在两台机器上执行以下步骤:

    1.使用root登录A服务器:su – root

    image

    2.在登录的A服务器上通过指定加密算法指令ssh-keygen -t rsa来生成秘钥,执行完该指令一直回车即可。

    405905cc223d52b0ae542e7fa020637

    说明:(1)ssh-keygen –t rsa是指定加密的算法是rsa

              (2)(/root/.ssh/id_rsa)是保存秘钥的路径

            (3)/root/.ssh/id_rsa.pub是生成的公钥

    3.将公钥传到B服务器,以root用户登录B机器,回车后,当跳出yes/no的选项后,选择yes,然后输入B机器的密码,出现下面截图类型的信息,就证明设置成功了,这时可以通过ssh root@192.168.200.128测试下,正常情况下可免密登录到B机器上

    a2d012efa890d14c5a69f6be9c0530a

    A机器传给B机器的秘钥存放在/root/.ssh/目录下,进入到这个目录,可以看到:

    image

    完成以上步骤,就可以在A机器上免密码SSH登录B机器了,这时若要互相免密,可在B机器上把以上步骤重复一遍,但B机器ssh-copy-id root@ip的ip则是A机器的了。

    以上步骤,可以通过shell脚本来自动化操作互免。

     1 #!/bin/bash
     2 set -e
     3 
     4 ssh-keygen() {
     5     yum -y install expect
     6     /usr/bin/expect <<-EOF
     7     set timeout 60
     8     spawn ssh-keygen
     9     expect {
    10         "Enter file in which to save the key (/root/.ssh/id_rsa):" { send "\r"; exp_continue}
    11         "Overwrite (y/n)?" { send "n\r" }
    12         "Enter passphrase (empty for no passphrase):" { send "\r"; exp_continue} 
    13         "Enter same passphrase again:" { send "\r"}
    14     }
    15     expect eof
    16     EOF
    17     echo ""
    18 }
    19 
    20 
    21 ssh-copy(){
    22     /usr/bin/expect <<-EOF
    23     set timeout -1
    24     spawn ssh-copy-id $1
    25     expect {
    26         "*yes/no" { send "yes\r"; exp_continue }
    27         "*password:" { send "$2\r" }
    28     }
    29     expect eof
    30     EOF
    31 }
    32 
    33 
    34 ssh-keygen
    35 ssh-copy "root@192.168.200.128"

  • 相关阅读:
    初识对象,对象的创建以及方法的定义规则
    python习题001-----分支结构
    PTA 阅览室题解
    推特的算法规则你知道多少?
    pynvml.nvml.NVMLError_FunctionNotFound: Function Not Found
    Python自动化UI测试之Selenium基础实操
    【eXtplorer】本地搭建免费在线文件管理器并实现在外远程登录
    基于Python Matplotlib的科学可视化
    Spring MVC的请求处理逻辑
    docker mysql 5.7
  • 原文地址:https://blog.csdn.net/weixin_40706420/article/details/134454349