前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mac m2自动登陆跳板机脚本

Mac m2自动登陆跳板机脚本

作者头像
潇洒
发布2023-10-20 11:14:17
4780
发布2023-10-20 11:14:17
举报
文章被收录于专栏:石头岛

需求

需求很简单,通过脚本自动登陆跳板机。 因为最近换的是mac M2,然后碰到了一堆问题。

问题

intel芯片换到m2出现很多问题。 首先mac m2 没有python2,默认是python3,所以脚本的命令要调整成python3相关的。 然后是 ssh 登陆,原来正常可以登陆方式也有问题,默认的ssh密钥失效,需要替换成新的密钥。 就导致原来的免密登陆也失效了,添加了公钥,依然需要输密码,下面的脚本,有一段是补偿输入密码的操作, 如果不需要,可以删了输密码的部份。

自动登陆脚本

需要准备两个脚本:

  1. login.sh, shell 脚本
  2. jump.python, python3脚本
代码语言:javascript
复制
#!/bin/sh
expect -c "
set pwd you_pass_word
spawn ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa test@10.10.10.10
set timeout 2
expect "*assword:*"
send \"\$pwd\r\"

set timeout 2
expect \"\[MFA auth\]:\"
set password \"`python3 ~/.ssh/jump.python`\"
send \"\$password\r\"
interact
"

解释上面的脚本

说明一下,新的 ssh 需要输入:

ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa

原来 ssh 只需要:

ssh username@10.10.10.10 就可以登陆了

python3 部分

python3 脚本提取google验证码。

my_secret 是谷歌的密钥。

代码语言:javascript
复制
#!/usr/bin/python3
import onetimepass as otp

my_secret = 'XXXXXXXXXXXXX'
my_token = otp.get_totp(my_secret)
print ("%06d" % my_token)

iterm2 配置

在 Open Profiles 中添加一下自动登陆脚本:

login shell 或 Command 都可以,用sh:

代码语言:javascript
复制
sh ~/.ssh/jump.sh

不要使用 expect 开头:

代码语言:javascript
复制
expect ~/.ssh/jump.sh

这样就可以登陆成功了,即不需要输密码,也不需要验证码。 需要注意的是,如果需要使用lrzsz 这样的功能的话,不可以使用expect执行脚本,会失败,只能使用sh进行登陆。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求
  • 问题
  • 自动登陆脚本
    • 解释上面的脚本
    • python3 部分
    • iterm2 配置
    相关产品与服务
    验证码
    腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档