主頁(yè) > 知識(shí)庫(kù) > shell腳本實(shí)現(xiàn)ssh自動(dòng)登錄功能分享

shell腳本實(shí)現(xiàn)ssh自動(dòng)登錄功能分享

熱門標(biāo)簽:地圖標(biāo)注超出范圍怎么辦 佛山高德地圖標(biāo)注中心 excel地址地圖標(biāo)注 杭州機(jī)器人外呼系統(tǒng) 旅游地圖標(biāo)注大全 陜西電銷卡外呼系統(tǒng)怎么安裝 百度地圖標(biāo)注圖標(biāo)更換 東莞電銷機(jī)器人價(jià)格一覽表 百度地圖的地圖標(biāo)注

文件名:ssh_auto_login

復(fù)制代碼 代碼如下:

#!/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 "這里填通道機(jī)的默認(rèn)密碼"

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
 #如果最后的字符匹配則執(zhí)行命令\r結(jié)尾表示確定
 expect {
  "*yes/no" { send "yes\r";exp_continue}
  "*password:" { send "$password\r" }
 }
        #這里是需要通過(guò)通道機(jī)登陸時(shí)的匹配流程,根據(jù)需要自行修改。
 expect {
  "*PASSCODE:" {
   send_user "請(qǐng)輸入通道機(jī)動(dòng)態(tài)密碼:";
   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
}
#無(wú)法匹配$,還不知道怎么解決
#expect -re "*\$" { puts "test123"; send "source /etc/profile\r" }
#expect "*\$" { send "cd ~\r" }
send_user "login success!"
interact

上邊是ssh的自動(dòng)登錄,可以配合下邊的shell使用,很方便。
文件名:xxx_launcher

復(fù)制代碼 代碼如下:

#!/bin/sh
##
# 服務(wù)器登陸器
#
# @author zhiyuan hzyhouzhiyuan@gmail.com>
##
channel_user="user_namexxx"
channel_passwd="xxxx"
#內(nèi)網(wǎng)通道機(jī)
internal_ip1=xxx.xxx.xxx.xxx
#聯(lián)通
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 需要通道機(jī)跳轉(zhuǎn)的ipxxx.xxx.xx

 *)
  echo "幫助信息:"
  echo "\tthere is not a server named [$1]"
  echo "\t服務(wù)器149:\t149"
  echo "\t服務(wù)器49:\t49"

esac

此時(shí)登陸某個(gè)服務(wù)器的時(shí)候就直接 用上述shell帶要登錄的服務(wù)器參數(shù)即可,如: ./xxx_launcher 49

您可能感興趣的文章:
  • Windows上SSH服務(wù)器配置圖文教程
  • windows 7架設(shè)OpenSSH服務(wù)器實(shí)踐
  • python通過(guò)ssh-powershell監(jiān)控windows的方法
  • Windows系統(tǒng)下安裝Python的SSH模塊教程
  • windows7下安裝php的php-ssh2擴(kuò)展教程
  • ssh遠(yuǎn)程執(zhí)行命令方法和Shell腳本實(shí)例
  • ssh自動(dòng)登錄的4種實(shí)現(xiàn)方法
  • python paramiko實(shí)現(xiàn)ssh遠(yuǎn)程訪問(wèn)的方法
  • Python實(shí)現(xiàn)建立SSH連接的方法
  • 簡(jiǎn)單架設(shè)SSH+Squid代理服務(wù)器的自由上網(wǎng)通道的方法
  • 關(guān)于ssh連不上問(wèn)題的解決方法(必看)
  • SSH框架網(wǎng)上商城項(xiàng)目第30戰(zhàn)之項(xiàng)目總結(jié)(附源碼下載地址)
  • 關(guān)于SSH 遠(yuǎn)程執(zhí)行命令你要知道的二三事
  • SSH+Jquery+Ajax框架整合
  • Ubuntu下查看ssh服務(wù)是否安裝或啟動(dòng)的方法
  • ssh連接超時(shí)解決方法
  • PowerShell小技巧之嘗試ssh登錄
  • linux系統(tǒng)下的ssh登錄和配置方法
  • Linux ssh遠(yuǎn)程連接斷開(kāi)問(wèn)題處理辦法解決
  • python使用paramiko模塊實(shí)現(xiàn)ssh遠(yuǎn)程登陸上傳文件并執(zhí)行
  • 無(wú)需密碼通過(guò)ssh執(zhí)行rsync來(lái)同步文件的方法
  • ubuntu16.04下安裝openssh-server報(bào)依賴錯(cuò)誤的完美解決方法(非常不錯(cuò))
  • windows安裝openssh并通過(guò)生成SSH密鑰登錄Linux服務(wù)器

標(biāo)簽:南充 延邊 隨州 通遼 西藏 雅安 青島 朝陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《shell腳本實(shí)現(xiàn)ssh自動(dòng)登錄功能分享》,本文關(guān)鍵詞  shell,腳本,實(shí)現(xiàn),ssh,自動(dòng),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《shell腳本實(shí)現(xiàn)ssh自動(dòng)登錄功能分享》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于shell腳本實(shí)現(xiàn)ssh自動(dòng)登錄功能分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章