资讯专栏INFORMATION COLUMN

使用expect自动登录

MrZONT / 2186人阅读

摘要:用它进行自动登录,不是用,而是把用户名密码写死在脚本里,来实现自动登录,毕竟总去上传也不现实。我在这儿修改了下,优先接受命令行参数,如果没有传则使用默认值。友情提示,写脚本要用它自己的语法,而不是的。

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
"; exp_continue }
    "server" { send  "${jump_machine_id}
";  }
    }
}

interact

重要参考

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/9140.html

相关文章

  • Linux expect指令实现ssh自动登录脚本

    摘要:写在前面目前在公司是一人一台虚拟机,大多数工作都要在虚拟机上完成,为此每天要执行很多次指令登录虚拟机有很多方式解决这个问题,如使用等工具记录常用的连接,我就写了一个简单的脚本实现一键登录脚本内容如下密码再将配置别名,或移动到可执行目录中,即 写在前面:目前在公司是一人一台虚拟机,大多数工作都要在虚拟机上完成,为此每天要执行很多次【ssh xxx@xxxxxx】指令登录虚拟机;有很多方式...

    Astrian 评论0 收藏0
  • ssh登录自动填充密码

    摘要:问题要通过一个跳板机登录其他主机,每次使用再输入密码的方式太耗时,想要进行密码自动填充解决使用在脚本中封装的登录自动填充密码功能使用的自动填充密码功能交互功能将写入配置文本或者直接在脚本作为字典读取用户输入,匹配出,调用进行登录,相关操作 问题 要通过一个跳板机ssh登录其他主机,每次使用ssh hostIp -l username再输入密码的方式太耗时,想要进行密码自动填充 解决 使...

    姘搁『 评论0 收藏0
  • iTerm2 结合 Linux expect 实现 ssh 自动登陆, 通过跳板机登录服务器内网功能

    摘要:解决方法脚本通过跳板机登录内网服务器,如果只登陆有外网的服务器,把有关内网的部分删掉就可以啦,例如跳板机就是有外网的服务器。执行完成后保持交互状态,把控制权交给控制台。 痛点 一般情况下,公司所有的服务器都在内网,公网访问、管理服务器都要先通过登录一台跳板机,然后再由跳板机登录到相应的服务器进行操作,跳板机与服务器的连接都是内网地址。我们经常看到的现象就是下图这样(博主 Mac 自带的...

    williamwen1986 评论0 收藏0
  • 使用expect自动登录

    摘要:用它进行自动登录,不是用,而是把用户名密码写死在脚本里,来实现自动登录,毕竟总去上传也不现实。我在这儿修改了下,优先接受命令行参数,如果没有传则使用默认值。友情提示,写脚本要用它自己的语法,而不是的。 expect是一个会话程序,根据内容反馈来做出应答,python也有一个相关库pexpect。用它进行自动登录,不是用authorized_key,而是把用户名密码写死在脚本里,来实现自...

    eternalshallow 评论0 收藏0
  • 使用 expect 在必要情况下实现自动输入密码登陆

    摘要:原文地址补充网友穗乃果提示,用可以更完美地解决这个问题。试了一下,因为安全原因,默认不支持安装可以用以下命令安装使用方法你的密码添加命令别名在中添加一行你的密码使之生效完美解决了使用带来的副作用,感谢穗乃果 由于公司的堡垒机必须要用域账号登陆,然后转发密钥,所以每次登陆堡垒机的时候都需要手动输入域账号密码。密码太长且复杂,手动输入容易输错,故使用 expect 写了个脚本来做这个事情,...

    Barry_Ng 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<