您的位置:68399皇家赌场 > 域名注册 > Linux中使用expect脚本落成长途机器自动登陆

Linux中使用expect脚本落成长途机器自动登陆

发布时间:2019-05-12 15:41编辑:域名注册浏览(147)

    那几个外号能够写到~/.bashrc文件中

    再将【./login.sh】配置外号alias,或活动到可实行目录中,就能够兑现【login】壹键登陆;

    如上所述是笔者给我们介绍的shell脚本通过expect完成自动单边无密登六,希望对大家持有帮助,假使大家有其余疑问请给自身留言,作者会及时过来咱们的。在此也极其多谢咱们对剧本之家网址的补助!

    一、下载安装expect

    自己的条件是Mac OS X,二〇一七年写博客的时候,用的要么Windows,感到自个儿土憋壹枚,未来总算用上高大上的Mac了,特此注解:小编的遭遇是Mac!!!
    用Mac上的Homebrew软件管理包工具下载expect,expect其实也是1种shell,跟bash shell大致。
    brew install expect就能够下载expect。

    接下来定义一些命令外号,比方:

    引言

    代码如下:

    历次登入公司的生产机,都亟需先用ssh登入到跳板机,然后从跳板机再用ssh连上生产机,而且登陆操作都亟待输入长长的ip和密码,非常的劳动,终于在前日忍无可忍了!于是这篇博客就出生了!

    您或然感兴趣的稿子:

    • 用expect达成ssh自动登陆服务器并展开批量管制的落到实处情势
    • ssh expect自动登六的台本代码
    • 用expect达成的自发性登6到多台服务器的shell脚本
    • shell脚本通过expect完毕活动单边无密登陆效用
    • Linux expect达成自动登入脚本实例代码
    • spawn:运行新历程,后跟新进程要进行的通令;
    • expect:钦定要监听的字符串,要是spawn进度重临了协作的字符串(如正式输入的提醒音讯),则触发send;
    • send:发送内定的字符串到spawn进度,替代标准输入;
    • 68399皇家赌场,interact:用户参与互动;
    EXPECT=/usr/bin/expect 
    
    
    $EXPECT <<EOF 
    spawn ssh-keygen -t rsa 
    expect "*ssh/id_rsa*" { 
      send -- "r" 
      expect "*for no passphrase*" 
      send -- "r" 
      expect "*passphrase again*" 
      send -- "r" 
      exp_continue 
    } 
    EOF 
    iplist=`cat /root/ip.list` 
    for ip in $iplist 
    do 
      $EXPECT <<EOF 
      spawn ssh-copy-id root@$ip 
      expect "*(yes/no)?*" { 
        send -- "yesr" 
        expect "*?assword:*" 
        send -- "$PASSWDr" 
      } "*?assword:*" { 
        send -- "$PASSWDr" 
        exp_continue 
      } 
    EOF 
    done 
    

    3、达成1键登陆的1键

    告诉您个好东西,便是Mac(linux下也会有)终端中的alias命令,这一个命令正是给其余命令起小名,用法如:
    alias ll="ls -al",今后你用ll就足以兑现ls -al的意义了!
    那正是说我们刚刚写的脚本是在/Users/admin/myshell/login.sh那一个岗位,所以每一趟运营脚本登入,你还需求输入这么长的门路,只怕是进入到剧本的目录中,特别劳苦,未有一键登6的快感!
    据此我们也用alias给这么长的字符串起各自名,就叫gyd吧!
    咱们为了使alias的授命关机重启之后依旧奏效,所以编辑/Users/admin下的.bash_profile文件,增加如下1行:

    68399皇家赌场 1

    增加命令

    从此直接输入gyd就足以登入到拾.十三.1陆.194了!
    好了,就写到那吗!

    #!/usr/bin/expect -f
    set hostname [lindex $argv 0]
    set user [lindex $argv 1]
    set passwd [lindex $argv 2]
    set timeout 30
    set force_conservative 1
    if {$force_conservative} {
      set send_slow {128 .1}
    }
    spawn ssh $user@$hostname;
    expect {
        "*continue connecting (yes/no)?" { send -s "yesr"; exp_continue }
        "*assword:" {
            send -s "$passwdr";
        }
    }
    interact
    

    expect有多其中央的指令:

    你可能感兴趣的文章:

    • 用expect实现ssh自动登入服务器并开始展览批量管制的贯彻格局
    • ssh expect自动登六的剧本代码
    • 用expect实现的电动登入到多台服务器的shell脚本
    • Linux中使用expect脚本达成长途机器自动登入
    • Linux expect达成全自动登入脚本实例代码

    先附上自身在操作生产机器的两点思量:

    本文由68399皇家赌场发布于域名注册,转载请注明出处:Linux中使用expect脚本落成长途机器自动登陆

    关键词: 68399皇家赌场 软件开发

上一篇:在Centos计划nodejs的手续

下一篇:没有了