使用 bash 脚本自动执行 Google 2FA 身份验证,以便使用 rsync 复制文件

使用 bash 脚本自动执行 Google 2FA 身份验证,以便使用 rsync 复制文件

一个自动 bash 脚本,用于从 Google 的 2FA 密钥生成 OTP(验证码),生成的 OTP(验证码)应用于将数据从一台 Ubuntu 服务器传输到另一台启用 2FA 的 Ubuntu 服务器

我使用rsync命令将文件从 Jenkins 服务器传输到生产服务器。生产服务器已启用 2FA。我需要在不使用任何其他资源(如 AWS S3)的情况下自动执行此过程。

有人能帮我解决这个问题吗?

谢谢

答案1

我们可以一起使用sshpassoathtool将文件复制到启用了 2FA 的服务器。因此我们可以删除努洛克来自服务器并加强服务器抵御暴力攻击。

先决条件:

来源/Jenkins 服务器:

  1. sudo apt 安装 sshpass
  2. sudo apt 安装 oathtool

目标服务器:

  1. 在用户家中创建 SSH 密钥和 2FA 身份验证文件。

Jenkins 服务器:

以下是将文件从 Jenkins 复制到启用 2FA 的服务器的示例:

sshpass -p `oathtool -b  --totp 'xxxxxxxxxxxxx'` rsync -aruvhze 'ssh -i /var/lib/jenkins/ssh_key.txt -o StrictHostKeyChecking=no' --progress /var/lib/jenkins/workspace/build/* [email protected]:/opt/build/
  • 2FA 密钥 xxxxxxxxxxxxx
  • SSH 密钥文件 /var/lib/jenkins/ssh_key.txt
  • 源文件夹:/var/lib/jenkins/workspace/build/*
  • 目标服务器用户:scp_user
  • 目标服务器:10.10.10.46
  • 目的地:/opt/build/

相关内容