SSH Key(公钥/私钥认证)是现代服务器运维中最常用、最安全、最舒服的一种登录方式。

配置成功后,你可以:

本文将以「从零开始」的方式,讲清楚 SSH Key 的 原理 + 生成 + 配置 + 多设备实践 + VS Code 配置,适合博客收藏作为长期参考。


一、SSH Key 是什么?为什么要用它?

SSH Key 是通过 一对密钥文件(私钥 + 公钥) 来验证身份的。

验证时不会传输私钥,而是通过加密握手确认“你确实拥有私钥”。

相比传统密码登录:

登录方式优点缺点
密码简单易被爆破、不适合自动化、VS Code 会不断弹密码
SSH Key安全、免密、自动化支持强、不可爆破、体验顺滑需要配置一次

一句话:

SSH Key=更安全 + 更省心 + 更专业
尤其适合 WordPress 开发、插件开发、自动部署、Python 上机任务等场景。


二、生成 SSH Key(在本地电脑上执行)

在你的 本地电脑(不是 VPS)执行:

BASH
ssh-keygen -t ed25519 -C "my-laptop"
点击展开查看更多

一路回车即可。

生成的文件通常在:

PLAINTEXT
~/.ssh/id_ed25519        # 私钥(必须保密)
~/.ssh/id_ed25519.pub    # 公钥(可以发给 VPS)
点击展开查看更多

Ed25519 是新一代加密算法,比 RSA 更安全、速度更快。


三、把公钥部署到 VPS

SSH 到你的 VPS(最后一次手动输密码):

BASH
ssh root@你的VPSIP
点击展开查看更多

创建 .ssh 目录:

BASH
mkdir -p ~/.ssh
chmod 700 ~/.ssh
点击展开查看更多

编辑授权文件:

BASH
nano ~/.ssh/authorized_keys
点击展开查看更多

然后把你本地电脑里的公钥复制进去:

BASH
cat ~/.ssh/id_ed25519.pub
点击展开查看更多

粘贴到 VPS 的 authorized_keys 内,保存退出。

最后设定正确权限:

BASH
chmod 600 ~/.ssh/authorized_keys
点击展开查看更多

完成!


四、在本地配置 ssh config(推荐)

让 SSH 自动使用你的私钥。

编辑:

PLAINTEXT
~/.ssh/config
点击展开查看更多

新增:

BASH
Host my-vps
    HostName 你的VPSIP
    User root
    IdentityFile ~/.ssh/id_ed25519
点击展开查看更多

之后你可以直接:

BASH
ssh my-vps
点击展开查看更多

即可免密登录。


五、VS Code Remote-SSH 免密登录

开启 VS Code → 安装扩展:

Remote - SSH

左下角绿色图标 → Connect to Host… → 选 my-vps

如果 SSH Key 配置正确:


六、多设备访问(A/B/C 多台电脑如何共享登录?)

SSH Key 是按“设备”而不是“账号”授权的。

也就是说:

例如你的 authorized_keys 会长这样:

TEXT
ssh-ed25519 AAAAC3... my-laptop
ssh-ed25519 AAAAC3... office-computer
ssh-ed25519 AAAAC3... home-desktop
点击展开查看更多

如果某台电脑丢了?

只需从 authorized_keys 删除对应那一行即可,其他电脑不受影响。


七、进一步提升安全性(可选)

可启用:

  1. 禁用密码登录,仅允许 SSH Key

    /etc/ssh/sshd_config

    PLAINTEXT
    PasswordAuthentication no
    点击展开查看更多
  2. 只开放特定 IP 登录(更强安全限制)

  3. 多用户独立管理各自的 SSH key

适合生产环境使用。


八、小结

SSH Key 登录是每个开发者、运维人员都应该掌握的基础技能。

它的核心优势:

你未来如果做:

SSH Key 都可以成为你的基础设施。


版权声明

作者: 梦随乡兮

链接: https://imsxx.com/ssh-key-auth-guide/

许可证: CC BY-NC-SA 4.0

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。请注明出处、非商业性使用,并以相同方式共享。

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键