一个自动 bash 脚本,用于从 Google 的 2FA 密钥生成 OTP(验证码),生成的 OTP(验证码)应用于将数据从一台 Ubuntu 服务器传输到另一台启用 2FA 的 Ubuntu 服务器
我使用rsync
命令将文件从 Jenkins 服务器传输到生产服务器。生产服务器已启用 2FA。我需要在不使用任何其他资源(如 AWS S3)的情况下自动执行此过程。
有人能帮我解决这个问题吗?
谢谢
答案1
我们可以一起使用sshpass
和oathtool
将文件复制到启用了 2FA 的服务器。因此我们可以删除努洛克来自服务器并加强服务器抵御暴力攻击。
先决条件:
来源/Jenkins 服务器:
- sudo apt 安装 sshpass
- sudo apt 安装 oathtool
目标服务器:
- 在用户家中创建 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/