在Linux命令行自动登陆带有谷歌二次认证的堡垒机


0,totp项目安装,根据自己的系统下载,然后解压把可执行文件totp放到/usr/bin目录下

totp项目地址
截图录屏_选择区域_20211123175149.png


1,totp关联谷歌验证器

在已经绑定了密码的谷歌验证器上点击右上角三个点,然后点击转移账号。扫码得到验证器密钥,像下面这样。

1
otpauth://totp/Google:xxx?secret=SKGELSKGKDL&issuer=Google

记下secret后面的字符串”SKGELSKGKDL”

1
2
3
4
totp config add 密钥对应的名字 SKGELSKGKDL
Added secret Mycode
如何调用?
totp 密钥对应的名字

截图录屏_选择区域_20211123175711.png


2,totp常用命令

添加一个新密钥

1
totp config add mysecretname seed

修改一个已存在密钥

1
totp config update mysecretname newseed

删除一个密钥

1
totp config delete mynewname

列出所有密钥

1
totp config list

将一个已存在的密钥改名

1
totp config rename mysecretname mynewname

删除所有密钥

1
totp config reset

获取帮助

1
2
totp --help
totp config --help

totp命令补全

1
. <(totp config completion)

3,绑定好了,也知道怎么用了。直接上脚本,一定要给脚本执行权限然后./执行!

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/expect -f
set host 堡垒机ip
set port 堡垒机端口
set user 登陆用户
set key_file 登陆密钥
set authenticator [exec bash -c {/usr/bin/totp 堡垒机对应密钥名称}]
set timeout -1
spawn ssh -i $key_file -p $port $user@$host
expect "*auth*"
send "$authenticator\r"
interact
expect eof