一文掌握SSH免密登录,效率提升300%
一文掌握 SSH 免密登录:从配置到提速的完整方案
SSH 免密登录本质是用公钥认证替代密码认证:本地生成密钥对,把公钥放到服务器的 ~/.ssh/authorized_keys,连接时客户端用私钥证明身份,服务端用公钥验证通过后直接放行。
配置成功后,配合 ~/.ssh/config 别名和连接复用,日常登录、scp、rsync、Ansible、Git
远端操作都能省掉大量重复输入。
一、三步完成免密登录
1. 生成密钥对
推荐优先用 Ed25519,密钥短、安全性高、性能更好;兼容旧系统时再用 RSA 4096。
bash
编辑
ssh-keygen -t ed25519 -C "yourname@workstation"
生成时如果希望完全免密,Passphrase 直接回车留空;如果私钥可能被他人接触,建议设置 Passphrase,再配合 ssh-agent 缓存。
2. 推送公钥到服务器
bash
编辑
ssh-copy-id user@192.168.1.100
这条命令会自动创建 ~/.ssh、写入 authorized_keys、设置权限。
如果 ssh-copy-id 不可用,可以手动追加:
bash
编辑
cat ~/.ssh/id_ed25519.pub | ssh user@host
"mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
3. 测试免密登录
bash
编辑
ssh user@192.168.1.100
不需要输入密码即可登录,说明配置成功。
二、权限不对,免密必失败
这是最常见坑。服务端必须满足:
bash
编辑
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
本地私钥和 config 也建议设为 600:
bash
编辑
chmod 600 ~/.ssh/id_ed25519
chmod 600 ~/.ssh/config
权限过宽时,SSH 会直接拒绝使用密钥认证。
三、用 ~/.ssh/config 把登录变成别名
不用每次写 user@ip -p 端口,直接 ssh prod 即可。
bash
编辑
Host prod
HostName 192.168.1.100
User deploy
Port 2222
IdentityFile ~/.ssh/id_ed25519
Host bastion
HostName 10.0.0.1
User ops
IdentityFile ~/.ssh/id_ed25519
跳板机场景可以这样写:
bash
编辑
Host inner
HostName 10.0.0.10
User dev
ProxyJump bastion
之后执行 ssh inner,会自动经过 bastion 跳转。
四、让 SSH 快 3 倍的关键配置
很多人配完免密,仍然觉得“每次连接慢”。真正提速靠连接复用。
bash
编辑
Host *
ControlMaster auto
ControlPath ~/.ssh/%r@%h-%p
ControlPersist 10m
ServerAliveInterval 60
GSSAPIAuthentication no
效果是:第一次连接建立后,后续 ssh、scp、rsync 会复用同一通道,延迟从秒级降到毫秒级。
服务端也可以关闭 DNS 反向解析,减少登录卡顿:
bash
编辑
UseDNS no
五、安全加固:免密之后反而更该做
免密登录配好后,建议逐步收紧服务端配置。
bash
编辑
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin prohibit-password
ChallengeResponseAuthentication no
UsePAM no
修改前务必保留一个可用终端,避免把自己锁在外面。
修改后用 sshd -t 检查语法,再重启 sshd:
bash
编辑
sudo sshd -t
sudo systemctl restart sshd
六、故障排查顺序
免密不生效时,按这个顺序查:
用 ssh -v user@host 看卡在哪一步。
检查服务端 ~/.ssh 和 authorized_keys 权限。
确认 PubkeyAuthentication yes 已生效。
查看服务端日志:Ubuntu 看 /var/log/auth.log,CentOS 看 /var/log/secure。
检查防火墙、云安全组是否放行 SSH 端口。
检查是否被 SELinux 拦截。
七、生产环境建议
每台服务器、每个用途尽量用独立密钥,便于回收。
私钥不要上传到服务器,也不要放进代码仓库。
公钥末尾加注释,例如 web-01-2026-10,方便后期审计。
定期清理 authorized_keys 中不再使用的公钥。
自动化场景用无 Passphrase 密钥;人工登录场景建议开 Passphrase + ssh-agent。
重要服务器可叠加 MFA、堡垒机、IP 白名单。
掌握这三层:密钥认证打通免密,config 别名简化输入,连接复用提升速度,SSH 日常效率会明显提升。
-
一文掌握SSH免密登录,效率提升300%一文掌握 SSH 免密登录:从配置到提速的完整方案SSH 免密登录本质是用公钥认证替代密码认证:本地生成密钥对,把公钥放到服务器的 ~/.ssh/authorized_keys,连接时客户端用私钥证明身份,服务端用公钥验证通过后直接放行。配置成功后,配合 ~/.ssh/config 别名和连接复...
-
rsyslog精选详解:从入门到生产环境实践rsyslog 精选详解:从入门到生产环境实践rsyslog 是 Linux 平台主流高性能日志采集转发服务,是 syslog 标准的增强实现;替代老式 syslogd,支持多输入、过滤、模板、转发、本地落盘、协议转发(UDP/TCP/TLS/RELP)、队列缓冲,广泛用于服务器、中间件、集群统一日志归集,常...
-
故障转移故障排查手册:常见报错一站式解决故障转移故障排查手册:常见报错一站式解决故障转移(Failover)涉及的组件很多,但排查思路其实高度一致:先确认“是否真的触发了故障转移”,再定位“触发原因”,最后验证“切换后是否可用”。下面按通用排查流程 + 高频组件报错整理,适合做运维手册直接复...
-
一文掌握内核参数入门教程,效率提升300%一文掌握内核参数入门教程,效率提升 300%说明:不是随便调参数就能凭空涨 3 倍性能,标题是圈内常见宣传口径;真实收益是:消除内核瓶颈、避免 OOM、软中断飙高、连接丢包、文件句柄耗尽这类隐性卡点,业务在高并发下不再被操作系统拖后腿。适合 Linux 服务器...
-
2026年ELK监控教程最新教程,运维必收藏2026 ELK(Elastic Stack)监控最新教程|运维必收藏版本基线:Elastic Stack 9.4 / 9.5,2026 主流;ELK 现在官方叫 Elastic Observability,不再只是日志,是日志 + 指标 + 链路统一可观测平台;架构重心从 Logstash 转向 Elastic Agent + Fleet + OTel 原生支持Elastic 适用:主机监控、容器 / K8s、微服...
-
【实战】Fluentd源码,一步步带你搞定【实战】Fluentd 源码:一步步搞定核心链路Fluentd 看起来是“配置一个 fluent.conf 就能跑”的日志采集器,但真正要解决生产问题,必须看懂它的事件流转、插件加载、缓冲刷新和多 Worker 模型。当前主流稳定发行版是 fluent-package,td-agent 已停止维护。一、先看整体:F...