zoukankan      html  css  js  c++  java
  • 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就可以直接登录了。密码作了保存

  • 相关阅读:
    html页面3秒后自动跳转的方法有哪些
    web前端教程之javascript创建对象的方法
    想学好web前端,需要看哪些书籍
    码农只能干到30岁的说法可信吗?
    不管你以后写不写JS,都应该学会这种思考方式
    Python基础知识之排序法
    input和textarea修改placeholder颜色和字号
    关于IE和Firefox兼容性问题及解决办法
    vue-cli构建vue项目
    js 小数取整的函数
  • 原文地址:https://www.cnblogs.com/smartrui/p/10697529.html
Copyright © 2011-2022 走看看