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