服务器多?密码烦?用这个脚本,一键搞定 SSH 免密信任!

  发布时间:2025-12-07 19:47:06   作者:玩站小弟   我要评论
你是否也经历过这些场景:管理 200 台服务器,每次部署都要手动输入密码。新同事误操作导致known_hosts文件混乱。密钥泄露后连夜逐台服务器替换。今天分享一个工业级脚本,3 分钟建立全局SSH信 。

你是服务烦用否也经历过这些场景 :

管理 200 台服务器,每次部署都要手动输入密码。器多新同事误操作导致known_hosts文件混乱 。密码H免密信密钥泄露后连夜逐台服务器替换。个脚搞定

今天分享一个工业级脚本,本键3 分钟建立全局SSH信任体系 。服务烦用

一、器多免密登录的服务器租用密码H免密信基本原理

在Linux服务器之间实现SSH免密登录,主要依赖公私钥认证 机制:

跳板机生成SSH密钥对(私钥&公钥)将公钥(id_rsa.pub)分发到目标服务器的个脚搞定 ~/.ssh/authorized_keys确保权限正确,SSH配置允许公钥认证验证SSH免密登录是本键否生效。

二 、服务烦用代码实现

1. 读取列表清单

文件中的器多信息是亿华云以“IP 地址:密码”的格式呈现的 ,同时我们也支持在文件中添加注释以及留空行 。密码H免密信以下函数是个脚搞定检查目标文件 。

复制# 输入验证 :检查目标文件 validate_input() { # 检查目标文件是本键否存在 if [ ! -f "$TARGET_FILE" ]; then echo "[ERROR] 目标文件不存在: $TARGET_FILE" | tee -a $LOG_FILE exit 1 fi # 读取文件并过滤有效IP和密码(支持#注释和空行) mapfile -t TARGET_ENTRIES < <(grep -vE ^#|^$ "$TARGET_FILE") # 检查是源码库否读取到有效条目 if [ ${ #TARGET_ENTRIES[@]} -eq 0 ]; then echo "[ERROR] 目标文件中未找到有效IP和密码" | tee -a $LOG_FILE exit 1 fi echo "[$(date +%F%T)] 已加载目标IP和密码列表:" | tee -a $LOG_FILE printf %s\n "${ TARGET_ENTRIES[@]}" | tee -a $LOG_FILE }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20. 2. 生成密钥

以下函数是在.ssh生成一个秘钥对  。

复制# 生成跳板机密钥 generate_key() { echo "[$(date +%F%T)] 正在生成跳板机密钥..." | tee -a $LOG_FILE if [ ! -f ~/.ssh/id_${ KEY_TYPE} ]; then ssh-keygen -t ${ KEY_TYPE} -N "" -f ~/.ssh/id_${ KEY_TYPE} -q [ $? -eq 0 ] && echo "密钥生成成功" || exit 1 fi }1.2.3.4.5.6.7.8. 3. 部署公钥文件

秘钥对生成后 ,通过以下函数部署公钥 。

复制# 批量部署公钥到目标节点 deploy_key() { local ip=$1 local password=$2 echo "[$(date +%F%T)] 正在处理节点 $ip" | tee -a $LOG_FILE for ((i=1; i<=$RETRY_TIMES; i++)); do SSHPASS="$password" sshpass -e ssh-copy-id \ -o StrictHostKeyChecking=no \ -o ConnectTimeout=10 \ -i ~/.ssh/id_${ KEY_TYPE}.pub \ $USER@$ip >/dev/null 2>&1 if [ $? -eq 0 ]; then echo "节点 $ip 公钥部署成功" | tee -a $LOG_FILE return 0 else echo "节点 $ip 第$i次尝试失败 ,等待重试..." | tee -a $LOG_FILE sleep $((i*2)) fi done echo "[ERROR] 节点 $ip 公钥部署失败!" | tee -a $LOG_FILE return 1 }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.

三 、脚本演示

先准备设备清单。免费模板内容如下:

复制# 生产环境服务器列表 192.168.31.101:password 192.168.31.102:password 192.168.31.103:password1.2.3.4.

执行如下命令给脚本赋予执行的权限

复制chmod +x auto_ssh_trust.sh1.

执行完成上述命令后 ,输出如下结果:

脚本亮点:

(1) 支持 IP 和密码文件格式

文件格式为 IP:密码,支持注释(以#开头)和空行自动解析并提取 IP 和密码 : 复制ip=$(echo "$entry" | cut -d: -f1 | xargs) password=$(echo "$entry" | cut -d: -f2 | xargs)1.2.

(2) 日志记录与审计

记录每个节点的部署状态(成功/失败)生成校验报告,验证信任关系是否建立成功

(3) 错误处理与重试机制

单节点失败后自动重试(最多 3 次)跳过无效条目 ,继续处理其他节点。云计算

四、小结

该脚本用于自动化建立SSH双向信任关系  ,支持从文件导入 IP 地址和密码  ,并自动清理密码中的空格。通过生成Ed25519密钥、批量部署公钥、配置反向信任和记录审计日志 ,香港云服务器帮助运维人员高效管理多台服务器的SSH免密登录 。

  • Tag:

相关文章

  • 常见网络安全攻击路径盘点分析与建议

    攻击路径是指网络攻击者潜入到企业内部网络应用系统所采取的路径,换句话说,也就是攻击者进行攻击时所采取的相关措施。攻击途径通常代表着有明确目的性的威胁,因为它们会经过详细的准备和规划。从心怀不满的内部人
    2025-12-07
  • 基于云的物联网技术增加了学校的安全性

    学生、教师和教职员工的安全已成为全国关注的重点,物联网技术为教育校园提供了改善安全措施的方法,同时解决了学校安全的独特难题。 例如,出于多种原因,访客、家长、教职员工、教师和学生的家人都必须进入校园。
    2025-12-07
  • 45% 的网络安全从业者因压力过大,考虑退出该行业

    Help Net Security 网站披露了 Deep Instinct 发布的第三版年度 SecOps 报告,报告重点关注了 1000 名高管和高级网络安全专业人员日益增长的压力。研究发现,45%
    2025-12-07
  • 为什么API网关不足以保证API安全?API安全之路指向何处

    云计算架构的出现使企业重新思考应用程序的扩展方式,从而推动了企业摆脱通过虚拟机等基础设施部署全栈应用程序,而是通过创建由多个互操作服务组成的API,采用微服务方法。根据Gartner的预测,到2023
    2025-12-07
  • 灵魂拷问:你的数据被合规使用了吗?

    ​企业内部有各种各样的数据,包括:企业经营数据,如财务报表、现金流水、产品日激活人数和活跃人数;企业决策所需数据,如行业统计报告;产品收集的各类数据,包括用户的注册信息、行为信息等;企业在收集的各类数
    2025-12-07
  • 对 DDoS 攻击进行防护的几种措施

    如何防止攻击数据很清楚。从各个方面来看,DDoS 攻击都在增加。这对于处于攻击者十字准线中的企业来说是个坏消息。DDoS 攻击与普通的拒绝服务攻击有何区别?恶意流量来自世界各地的
    2025-12-07

最新评论