使用expect自动登录

expect是一个会话程序,根据内容反馈来做出应答,python也有一个相关库pexpect。用它进行自动登录,不是用authorized_key,而是把用户名密码写死在脚本里,来实现自动登录,毕竟总去上传key也不现实。

我在这儿修改了下,优先接受命令行参数,如果没有传则使用默认值。把脚本放到一个地方,在~/.profiles里加上一行alias mycommand='expect /yourpath',source之后就可以用mycommand运行脚本了。友情提示,写expect脚本要用它自己的语法,而不是bash的。

#!/usr/bin/expect

set timeout 10

set user [lindex $argv 0 ]
set passwd [lindex $argv 1 ]
set jump_machine_id [lindex $argv 2]
set addr 192.192.11.22

if {[llength $argv] == 0} {
    set user default_username
    set passwd default_passwd
    set jump_machine_id 3
}

spawn ssh "$user@$addr"

expect {
    timeout {
    "Password" { send "$passwd\r"; exp_continue }
    "server" { send  "${jump_machine_id}\r";  }
    }
}

interact

重要参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值