文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2022-06-04 21:38

关注

文件名:ssh_auto_login


#!/usr/bin/expect
##
# ssh模拟登陆器
#
# @author zhiyuan <hzyhouzhiyuan艾特gmail.com>
##
if {$argc<4} {
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 "yesr";exp_continue}
"*password:" { send "$passwordr" }
}
#这里是需要通过通道机登陆时的匹配流程,根据需要自行修改。
expect {
"*PASSCODE:" {
send_user "请输入通道机动态密码:";
expect_user -re "(.*)n"
set random_passcode $expect_out(1,string)
send "$default_passcode$random_passcoder"
expect {
"Access Denied" { continue }
"Enter:" { send "1r" }
}
set translate_ip [lindex $argv 4]
if { $translate_ip != "" } {
expect "*):" { send "$translate_ipr" }
}
}
#"Last login:*" { }
}
break
}
#无法匹配$,还不知道怎么解决
#expect -re "*$" { puts "test123"; send "source /etc/profiler" }
#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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯