• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    shell脚本实现ssh自动登录功能分享

    文件名:ssh_auto_login

    复制代码 代码如下:

    #!/usr/bin/expect
    ##
    # ssh模拟登陆器
    #
    # @author zhiyuan hzyhouzhiyuan艾特gmail.com>
    ##
    if {$argc4} {
     puts "Error params: $argv"
     puts "Expect params :user passwd ip port [translate_id]"
     exit 1
    }

    set default_passcode "这里填通道机的默认密码"

    set user [lindex $argv 0]
    set password [lindex $argv 1]
    set ip [lindex $argv 2]
    set port [lindex $argv 3]
    set timeout 10

    while 1 {
     spawn ssh -p $port $user@$ip
     #如果最后的字符匹配则执行命令\r结尾表示确定
     expect {
      "*yes/no" { send "yes\r";exp_continue}
      "*password:" { send "$password\r" }
     }
            #这里是需要通过通道机登陆时的匹配流程,根据需要自行修改。
     expect {
      "*PASSCODE:" {
       send_user "请输入通道机动态密码:";
       expect_user -re "(.*)\n"
       set random_passcode $expect_out(1,string)
       send "$default_passcode$random_passcode\r"
       expect {
        "Access Denied" { continue }
        "Enter:" { send "1\r" }
       }
       set translate_ip [lindex $argv 4]
       if { $translate_ip != "" } {
        expect "*):" { send "$translate_ip\r" }
       }
      }
      #"Last login:*" { }
     }
     break
    }
    #无法匹配$,还不知道怎么解决
    #expect -re "*\$" { puts "test123"; send "source /etc/profile\r" }
    #expect "*\$" { send "cd ~\r" }
    send_user "login success!"
    interact

    上边是ssh的自动登录,可以配合下边的shell使用,很方便。
    文件名:xxx_launcher

    复制代码 代码如下:

    #!/bin/sh
    ##
    # 服务器登陆器
    #
    # @author zhiyuan hzyhouzhiyuan@gmail.com>
    ##
    channel_user="user_namexxx"
    channel_passwd="xxxx"
    #内网通道机
    internal_ip1=xxx.xxx.xxx.xxx
    #联通
    unicom_ip1=xxx.xxx.xxx.xxx
    #电信
    telecom_ip1=xxx.xxx.xxx.xxx
    case "$1" in
     ci)
      expect ssh_auto_login $channel_user $channel_passwd $internal_ip3 22

     cl)
      expect ssh_auto_login $channel_user $channel_passwd $unicom_ip1 22

     cd)
      expect ssh_auto_login $channel_user $channel_passwd $telecom_ip1 22

     149)
      expect ssh_auto_login channel_user channel_passwd xxx.xx.xxx.xxx 22

     49)
      expect ssh_auto_login $channel_user $channel_passwd $unicom_ip1 22 需要通道机跳转的ipxxx.xxx.xx

     *)
      echo "帮助信息:"
      echo "\tthere is not a server named [$1]"
      echo "\t服务器149:\t149"
      echo "\t服务器49:\t49"

    esac

    此时登陆某个服务器的时候就直接 用上述shell带要登录的服务器参数即可,如: ./xxx_launcher 49

    您可能感兴趣的文章:
    • Windows上SSH服务器配置图文教程
    • windows 7架设OpenSSH服务器实践
    • python通过ssh-powershell监控windows的方法
    • Windows系统下安装Python的SSH模块教程
    • windows7下安装php的php-ssh2扩展教程
    • ssh远程执行命令方法和Shell脚本实例
    • ssh自动登录的4种实现方法
    • python paramiko实现ssh远程访问的方法
    • Python实现建立SSH连接的方法
    • 简单架设SSH+Squid代理服务器的自由上网通道的方法
    • 关于ssh连不上问题的解决方法(必看)
    • SSH框架网上商城项目第30战之项目总结(附源码下载地址)
    • 关于SSH 远程执行命令你要知道的二三事
    • SSH+Jquery+Ajax框架整合
    • Ubuntu下查看ssh服务是否安装或启动的方法
    • ssh连接超时解决方法
    • PowerShell小技巧之尝试ssh登录
    • linux系统下的ssh登录和配置方法
    • Linux ssh远程连接断开问题处理办法解决
    • python使用paramiko模块实现ssh远程登陆上传文件并执行
    • 无需密码通过ssh执行rsync来同步文件的方法
    • ubuntu16.04下安装openssh-server报依赖错误的完美解决方法(非常不错)
    • windows安装openssh并通过生成SSH密钥登录Linux服务器
    上一篇:分享一个实用的iptables脚本(各种过滤写法参考)
    下一篇:bash获取当前路径示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    shell脚本实现ssh自动登录功能分享 shell,脚本,实现,ssh,自动,