每天登录服务器输密码输到手软?三分钟配置SSH免密登录,效率翻倍
你每天输多少次密码?
打开终端,`ssh user@server`,输入密码——这个动作你一天重复了多少次?10次?20次?如果再加上 `scp` 传文件、`git push` 推代码,一天输个三四十次密码毫不夸张。

更扎心的是,每次输错还得重来。有调查显示,开发者平均每天在密码输入上浪费 8-12 分钟。
今天就教你一个一劳永逸的办法:SSH 密钥登录。配置只需三分钟,之后所有服务器、GitHub、GitLab 通通不用再输密码。
先搞懂原理:公钥和私钥
SSH 密钥登录的核心是一对”钥匙”:
– 私钥(Private Key):你死死攥在手里的那把钥匙,绝对不能给任何人。存在你的电脑上(通常是 `~/.ssh/id_ed25519`)。
– 公钥(Public Key):你可以随便分发的”锁”,放到任何你想登录的服务器上(`~/.ssh/authorized_keys` 文件里)。
用个比喻:公钥是把锁,你可以把它装在任何门上;私钥是唯一的钥匙,只有你能打开这些门。别人拿到锁(公钥)也没用,因为他们没有钥匙(私钥)。
登录时,服务器用你的公钥出一道数学题,只有拿着对应私钥的电脑才能解出来。全程不需要传输密码,比密码登录更安全。
第一步:生成密钥对
打开终端,输入一行命令:
ssh-keygen -t ed25519 -C "your_email@example.com"参数解释:
– `-t ed25519`:使用 Ed25519 算法(2025 年推荐标准,比老旧的 RSA 更快更安全,密钥也更短)
– `-C`:加个注释方便日后辨认(一般用邮箱)
然后一路按回车就行:
1. 保存位置 → 默认 `~/.ssh/id_ed25519`,直接回车
2. 设置密码短语(passphrase)→ 可以直接回车跳过(偷懒方案),也可以设一个短密码(更安全)
运行完后,`~/.ssh/` 目录下会多出两个文件:
ls -la ~/.ssh/
# id_ed25519 ← 私钥!打死不能给别人
# id_ed25519.pub ← 公钥!可以到处分发第二步:把公钥放到服务器上
最简单的方式,一行命令搞定:
ssh-copy-id user@your-server.com这条命令会自动把你的公钥追加到服务器的 `~/.ssh/authorized_keys` 文件里。输入一次密码(最后一次!),之后就不用再输了。
如果你的系统没有 `ssh-copy-id`(比如 Windows 的 Git Bash),可以手动操作:
cat ~/.ssh/id_ed25519.pub | ssh user@your-server.com "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"第三步:验证
ssh user@your-server.com如果直接进去了——恭喜,免密登录配置成功! 🎉
常见踩坑指南
新手最容易遇到的三个问题:
1. “Permission denied (publickey)” 还是弹出来
八成是权限问题。服务器上的 `.ssh` 目录和 `authorized_keys` 文件权限必须严格正确:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys2. 换了电脑/重装了系统
重新生成一对密钥,把新的公钥加到服务器上就行。旧密钥会自动失效(因为新私钥和旧公钥不配对)。
3. 每次还是要输 passphrase?
如果你生成密钥时设了密码短语,每次用密钥时确实还要输一次。想让这步也自动化?把密钥加到 SSH Agent:
ssh-add ~/.ssh/id_ed25519输一次 passphrase,之后当前会话都不用再输了。
彩蛋:GitHub 也用这一套
你每天 `git push` 要输的 GitHub 密码,其实也能用 SSH 密钥解决:
# 1. 查看你的公钥
cat ~/.ssh/id_ed25519.pub
# 2. 复制整段内容,打开 GitHub → Settings → SSH and GPG keys → New SSH key
# 3. 粘贴,保存。然后把本地仓库的 remote 改成 SSH 地址:
git remote set-url origin git@github.com:你的用户名/仓库名.git从此 `git push` 再也不用输密码。
总结
| 操作 | 命令 | 频率 |
|——|——|——|
| 生成密钥 | `ssh-keygen -t ed25519 -C “email”` | 一次 |
| 上传公钥 | `ssh-copy-id user@server` | 每台服务器一次 |
| 加入 Agent | `ssh-add ~/.ssh/id_ed25519` | 每次开机一次 |
三分钟配置,省下每天10分钟,一年就是60个小时。 这笔时间投资,值不值?
现在就去配吧——趁下一个密码还没输错之前。
— END —
LC 智趣厅 · 科技与生活的交点
ihygg.cn
