iterm2 配置自动登录跳板机,无需输入密码和google验证码

 1、准备:编写Python脚本计算生成google身份验证码,参考python3 实现 google authenticator 认证/校验_我要买GTR45的博客-CSDN博客

脚本拿来就可以用,只需要替换脚本中的secret字段的值为自己的密钥即可

2、在~/.ssh/目录下编写expect脚本

新建expect文件,内容如下:

#!/usr/bin/expect

#配置自动登录跳板机,无需手动输入登录命令、密码和google身份验证码
spawn python3 /Users/username/.ssh/get_googe_token.py
expect eof
set CODE  $expect_out(buffer)
set HOST jump_server's Ip
set USER username
set PASSWORD password
set PORT port
spawn ssh $USER@$HOST -p $PORT
expect {
        "yes/no" {send "yes\r";exp_continue;}
         "*password:*" { send "$PASSWORD\r";exp_continue;}
        "*MFA auth*" {send "$CODE\r";exp_continue;}
        "Opt*" {send "p\r"}
        }

interact

上面代码主要解释

expect花括号中的内容解释:当执行完 spawn ssh $USER@HOST -p $PORT后,检查有没有yes/no,如果有则在终端输入yes;如果下面还需要继续执行expect命令,exp_continue命令一定不能少!!!

"*password*":同理接下来继续检查终端命令行中是否包含有password,如果有则在终端输入密码

"*MFA auth*":终端如果有MFA auth则在终端输入google校验码

"Opt":上一步输入google校验码以后,如果终端命令行有Opt命令,则在输入终端p 

 3、MAC电脑增加配置:利用快捷键 command+o打开iterm2的Profile配置,新增一个Profile,如下图:

4、登录:command+o,打开profiles的窗口,选择刚才新增的profile回车,开始执行expect脚本的命令自动登入

expect简单命令学习:

expect 是一种基于 Tcl(Tool Command Language)的编程语言和工具,用于自动化交互式进程。尽管 Expect 主要基于 Tcl,但它也在其他编程语言中有相应的实现,如 Python 的 pexpect 模块。Expect 用于编写脚本,以模拟用户与命令行应用程序之间的交互,可以用于自动化、自动化测试、自动登录、远程操作等场景。其主要特点是可以处理交互式输入和输出。

Expect 脚本通常用于创建自动化任务,特别是在需要与其他程序或系统进行交互、响应特定提示符或处理复杂输入和输出时非常有用。它允许您编写脚本来模拟用户的交互操作,以实现自动化任务的目标。

虽然 Expect 最初是基于 Tcl 的,但它已经有了多个语言的变种和实现,以适应不同的编程环境和需求。这意味着您可以在多种编程语言中使用 Expect 的功能,以满足您的自动化需求。

#!/usr/bin/expect

# 连接到跳板机
spawn ssh user@jump_server

# 匹配跳板机的提示符,这可以根据实际情况进行调整
expect "jump_server_password_prompt_here"

# 输入跳板机密码
send "your_jump_server_password\r"

# 匹配跳板机成功登录后的提示符,这可以根据实际情况进行调整
expect "jump_server_prompt_here"

# 连接到目标服务器
send "ssh user@target_server\r"

# 匹配目标服务器的密码提示符
expect "target_server_password_prompt_here"

# 输入目标服务器密码
send "your_target_server_password\r"

# 匹配Google身份验证器验证码提示符,这可以根据实际情况进行调整
expect "Google_authenticator_code_prompt_here"

# 输入Google身份验证器验证码
send "your_google_authenticator_code\r"

# 期望进入目标服务器的命令行界面,这可以根据实际情况进行调整
expect "target_server_command_prompt_here"

# 这里可以继续执行其他操作,例如执行命令等
# send "your_command_here\r"

# 等待命令完成并获取输出
expect "output_prompt_here"

# 获取命令输出并打印
set command_output $expect_out(buffer)
puts $command_output

# 退出交互式会话
send "exit\r"

# 等待退出
expect eof

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iTerm2是一款免费的命令行应用,专为Mac OS用户设计。你可以在官网http://iterm2.com/上下载并安装iTerm2。安装完成后,你可以根据个人喜好进行配置。常见的配置操作包括选择主题、设置高亮、自动填充建议、隐藏用户名和主机名、分屏等。以下是一些常用的配置步骤: 1. 下载和安装iTerm2:你可以在官网上下载iTerm2的安装包,并按照提示进行安装。 2. 主题配置iTerm2提供了多种主题供你选择。你可以在iTerm2的设置中找到主题选项,并根据自己的喜好进行选择。 3. 配置Oh My Zsh:Oh My Zsh是一款强大的终端框架,可以提供更好的终端体验。你可以通过一键安装或手动安装的方式来安装Oh My Zsh。 4. 切换zsh:安装完成Oh My Zsh后,你可以使用命令切换到zsh终端。 5. 修改主题:Oh My Zsh提供了多种主题供你选择。你可以在.zshrc文件中修改主题设置。 6. 配置Meslo字体:Meslo字体是一种常用的终端字体,你可以在iTerm2的设置中选择并配置Meslo字体。 7. 声明高亮:你可以在.zshrc文件中设置命令的高亮显示,使命令更加醒目。 8. 自动建议填充:Oh My Zsh提供了自动建议填充功能,可以根据你输入的命令自动提示可能的选项。 9. 快速隐藏和显示:iTerm2提供了快速隐藏和显示终端的快捷键,可以方便地切换终端的显示状态。 10. 隐藏用户名和主机:你可以在iTerm2的设置中隐藏用户名和主机名,增加终端的安全性。 11. 快捷键:iTerm2提供了丰富的快捷键设置,可以根据个人习惯进行自定义。 如果你想卸载Oh My Zsh或遇到其他问题,可以参考相关文档或在社区寻求帮助。希望这些信息对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值