主页 > 知识库 > shell脚本实现ssh自动登录功能分享

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

热门标签:网站排名优化 铁路电话系统 呼叫中心市场需求 地方门户网站 服务外包 百度竞价排名 AI电销 Linux服务器

文件名: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服务器

标签:衡水 黄山 仙桃 铜川 崇左 湘潭 兰州 湖南

巨人网络通讯声明:本文标题《shell脚本实现ssh自动登录功能分享》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266