SSH 密钥登录配置:告别密码,安全又方便

zheng头像
zheng 2026-07-15 12:00
楼主

> 还在每次登录服务器输密码?密码太简单不安全,太复杂记不住。SSH 密钥登录既安全又方便,配置一次,一劳永逸。

---

## 密钥登录的原理

SSH 密钥登录使用非对称加密:
- **私钥**:保存在你的电脑上,绝对不要泄露
- **公钥**:放在服务器上,可以公开

登录时服务器用公钥加密一个随机信息,只有持有对应私钥的电脑才能解密。不需要传输密码,安全性极高。

---

## 第一步:生成本机密钥对

在 **Mac/Linux 终端** 中执行:

```bash
ssh-keygen -t ed25519 -C "你的邮箱"
```

- -t ed25519:使用 Ed25519 算法(比 RSA 更安全更快)
- -C:添加备注,通常是你的邮箱

一路回车使用默认路径即可(~/.ssh/id_ed25519)。

生成后会有两个文件:
- ~/.ssh/id_ed25519 — 私钥(保密!)
- ~/.ssh/id_ed25519.pub — 公钥(可以给别人)

---

## 第二步:把公钥上传到服务器

最简单的方法是用 ssh-copy-id:

```bash
ssh-copy-id -i ~/.ssh/id_ed25519 -p 2222 [email protected]
```

如果 ssh-copy-id 不可用,手动操作:

```bash
cat ~/.ssh/id_ed25519.pub | ssh -p 2222 [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
```

---

## 第三步:测试密钥登录

```bash
ssh -p 2222 -i ~/.ssh/id_ed25519 [email protected]
```

如果不需要输密码就直接进去了,配置成功。

---

## 第四步:禁用密码登录(可选但推荐)

编辑服务器上的 /etc/ssh/sshd_config:

```
PasswordAuthentication no
PubkeyAuthentication yes
```

然后重启 SSH 服务:systemctl restart sshd

**重要提醒**:在做这步之前,确认密钥登录已经可以正常使用了!否则把自己锁在服务器外面就麻烦了。

---

## 配置 SSH 快捷别名

每次输 ssh -p 2222 -i ~/.ssh/id_ed25519 [email protected] 太长了。编辑 ~/.ssh/config:

```
Host myserver
HostName 192.168.2.22
Port 2222
User root
IdentityFile ~/.ssh/id_ed25519
```

之后只需要 ssh myserver 就够了。

---

## 常见问题

**Q:私钥权限太开放怎么办?**
```bash
chmod 600 ~/.ssh/id_ed25519
chmod 700 ~/.ssh
```

**Q:换了电脑怎么办?**
把 ~/.ssh/id_ed25519 和 ~/.ssh/id_ed25519.pub 复制到新电脑的相同位置即可。

---

SSH 密钥登录是每个程序员的基本功,配置只需 5 分钟,此后每次登录都能省下输密码的时间和担惊受怕。

crontab 定时任务完全指南:让服务器自动干活 自建网站监控:Uptime Kuma 部署教程

最新回复

暂无回复,来说两句吧

发表评论

站点总访问量:2799