zoukankan      html  css  js  c++  java
  • expect Password free login

    expect免密登录

    代码如下:

    [root@RedHat ~]# vim expect.sh 
    
    #!/bin/bash
    #免密登录
    
    IP="192.168.157.129"
    USERNAME="root"
    PWASSWORD="123"
    
    yum -y -q install expect &>/dev/null
    expect << EOF
        set timeout 6 
        spawn ssh-keygen -t rsa  
        expect "(/root/.ssh/id_rsa):"       {send "
    "}
        expect "passphrase):"               {send "
    "}
        expect "again:"                     {send "
    "}
        expect "#"                          {send "exit 
    "}
    EOF           
    expect << EOF 
        set timeout 6
        spawn ssh-copy-id ${USERNAME}@${IP}
        expect "connecting"                 {send "yes
    "}
        expect "password:"                  {send "${PWASSWORD}
    "}
        expect "#"                          {send "
    "}
    EOF 

    << EOF
    .......
    EOF #表示里面的内容均由expect命令去执行
    set timeout 6 #设置超时时间为6秒,下面的代码需在6秒钟内完成,如果超过,则退出。用来防止ssh远程主机网络不可达时卡住及在远程主机执行命令宕住
    spawn #激活一个交互式会话,在系统中创建一个进程
    ssh ${USERNAME}@${IP} #ssh登陆远程主机
    -o "StrictHostKeyChecking no" #不弹出“(yes/no)?”的对话框
    expect "password:" #期望终端出现包含"password:"的字段。如果没有出现,则不执行后面的代码,会卡在此处,达到超时时间退出。
    {send "${PWD} "} #传递给交互终端的指令,这里是发送密码。 相当于在终端敲了下回车
    {send "hostname "} #向远程主机发送hostname的指令
    {send "exit "} #最后一个expect不会执行,因此不会发送exit的指令,这里用来标识该expect要退出了

  • 相关阅读:
    开课 博客
    给定数组求数组中和最大子数组的和
    课堂测验
    读梦断代码有感(3)2019.2.20
    读梦断代码有感(2)2019.2.10
    读梦断代码有感(1)2019.2.05
    进度七
    进度 六
    sjz地铁作业
    进度四
  • 原文地址:https://www.cnblogs.com/lichouluoyu/p/14602989.html
Copyright © 2011-2022 走看看