• mac中使用expect脚本,让iTerms保存密码登录ssh


    最近工作中需要使用ssh连接到centos服务器中,以前公司都是直接配的私钥就可以免密登录了。这里还用的密码。

    由于,我一直用的是iTerm2,所以在网上搜索了下,找到了一种方案,那就是expect脚本。看了下,系统还自带了,不用再安装了

    expect是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。说白了,expect就是一套用来实现自动交互功能的软件。

    我把主要的脚本贴一下

    #!/usr/bin/expect
    set timeout 30
    spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]
    expect {
            "(yes/no)?"
            {send "yes
    ";exp_continue}
            "password:"
            {send "[lindex $argv 3]
    "}
    }
    interact
    

    以上的set, spawn,expect都是expect的主要命令.
    上面脚本的主要意思就是开启一个新的进程启动ssh,然后作为 ssh 的接受参数
    当出现交互时,直接发送send交互命令,整个过程完全是自动化的,不需要人工操作。

    spawn 	新建一个进程,这个进程的交互由expect控制
    expect  等待接受进程返回的字符串,直到超时时间,根据规则决定下一步操作
    send    发送字符串给expect控制的进程
    set     设定变量为某个值
    exp_continue 重新执行expect命令分支
    lindex $argv 0 ...99 这些是接受参数
    

    将上面的脚本放到任意目录下,但必须具有执行权限。然后在iTerms的profiles配置

    602973-20190412174535680-1665646625.png)

    主要是Send text at start这里配置你的expect脚本路径和对应的参数,如:

    
    /usr/local/bin/zc_168.sh 22 root 172.10.100.109 'abcd""' //如果密码里面有特殊的串,最好用引号引起来
    
    

    然后就可以执行选择pfofiles相应的item就可以直接登录了。密码作了保存

  • 相关阅读:
    洛古模拟赛--星空
    bzoj4476 [Jsoi2015]送礼物
    矩阵乘法总结
    bzoj 3167 SAO
    codeforces 671D
    10.28
    noip前集训
    10.2晚 模拟继续
    10.2 考试
    10.1 国庆 考试
  • 原文地址:https://www.cnblogs.com/smartrui/p/10697529.html
Copyright © 2020-2023  润新知