ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Linux双机SSH免密登录配置与自动化运维实战

Linux双机SSH免密登录配置与自动化运维实战 1. Linux双机免密登录的核心价值每次在服务器之间切换都要反复输入密码这种低效操作早就该被淘汰了。作为运维老鸟我经手的服务器集群规模从几台到上千台不等免密登录不仅是提升效率的利器更是自动化运维的基础设施。想象一下当你需要在几十台机器上批量执行命令时如果每台都要手动输入密码那简直是场灾难。SSH密钥认证机制就像给服务器配了把智能钥匙。本地机器生成公私钥对后把公钥复制到目标机器上。之后每次连接本地用私钥签名远程用公钥验签——整个过程完全不用人工干预。这种机制不仅省去了输密码的麻烦安全性也比密码认证更高暴力破解密码不存在的。2. 密钥生成与分发实战2.1 密钥对的诞生记在操作机假设是hostA上执行这个魔法命令ssh-keygen -t rsa -b 4096 -C hostA_to_hostB_$(date %Y%m%d)这里有几个关键点-t rsa指定密钥类型RSA算法兼容性最好-b 4096密钥长度2048位是底线4096位更安全-C后面是注释信息我习惯加上机器名和日期便于后期管理执行后会看到如下交互Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): [直接回车] Enter passphrase (empty for no passphrase): [建议设置口令] Enter same passphrase again: [重复口令]重要提示虽然可以留空passphrase但生产环境强烈建议设置否则私钥泄露就等于全线沦陷。生成的密钥对默认存放在~/.ssh/目录id_rsa → 绝不可外泄的私钥权限必须600id_rsa.pub → 可以任意分发的公钥2.2 公钥的空中加油传统方法是手动复制公钥内容到目标机的~/.ssh/authorized_keys文件但更专业的做法是ssh-copy-id -i ~/.ssh/id_rsa.pub userhostB这个命令会自动完成检查目标机.ssh目录是否存在创建authorized_keys文件权限自动设为600追加公钥内容确保文件权限正确如果遇到Permission denied错误先确保目标机SSH服务正常运行systemctl status sshd防火墙放行22端口firewall-cmd --list-ports密码认证未被禁用检查/etc/ssh/sshd_config中PasswordAuthentication yes3. 免密登录的进阶配置3.1 SSH客户端的秘密武器编辑~/.ssh/config文件没有就新建Host hostB-alias HostName 192.168.1.100 User opsuser IdentityFile ~/.ssh/id_rsa Port 2222这样配置后只需执行ssh hostB-alias就能直接登录——不用记IP、不用输用户名、自动选择密钥。对于管理多台机器的运维来说这个技巧能节省大量时间。3.2 安全加固的必选项在/etc/ssh/sshd_config中建议修改PermitRootLogin no # 禁止root直接登录 PasswordAuthentication no # 禁用密码认证 MaxAuthTries 3 # 限制尝试次数修改后记得重启服务systemctl restart sshd4. 批量执行命令的工业级方案4.1 单命令的闪电战免密登录后远程执行命令就像本地操作一样简单ssh hostB-alias df -h | grep /data这个命令会通过SSH连接到hostB执行磁盘空间检查只显示/data分区信息返回结果到hostA4.2 多机并发的战术核弹用parallel-ssh工具实现批量操作pssh -h host.list -l opsuser -A -i systemctl restart nginx其中host.list是包含所有目标机IP的文件每行一个地址。-A表示使用SSH代理-i显示每台机器的输出。5. 故障排查手册5.1 经典错误集锦症状1Permission denied (publickey,gssapi-keyex,gssapi-with-mic)检查项目标机authorized_keys权限必须是600目标机.ssh目录权限必须是700SELinux是否拦截setenforce 0临时关闭测试症状2Agent admitted failure to sign using the key解决方案ssh-add ~/.ssh/id_rsa5.2 调试大法查看详细连接过程ssh -vvv userhostB重点关注这些关键信息客户端使用的私钥路径服务器接受的认证方法密钥签名是否成功6. 生产环境注意事项密钥轮换每3-6个月更换一次密钥对就像定期改密码一样权限隔离不同用途的机器使用不同密钥对避免一钥通吃审计追踪在目标机的/var/log/secure中可以看到登录记录备份策略妥善保管私钥建议加密存储在密码管理器中我曾见过因为私钥泄露导致整个集群被挖矿程序入侵的案例。当时运维把密钥直接放在web目录下临时下载结果被爬虫扫到。所以切记私钥就是你的数字身份证必须像保护银行卡密码一样保护它。
返回列表