SSH密钥登陆

526 字
3 分钟
SSH密钥登陆

SSH密钥登陆#

第一步:在 Windows 上生成 SSH 密钥对#

Windows 10 和 11 自带了 OpenSSH 客户端。

  1. 按下 Win + R,输入 cmd 并回车。

  2. 输入以下命令并回车:

    Terminal window
    ssh-keygen -t ed25519

    (注:ed25519 是目前推荐的算法,比传统的 RSA 更快且更安全。)

  3. 系统会询问保存位置(默认即可,直接按回车)。

  4. 系统会提示设置 Passphrase(私钥密码)。建议设置一个,这样即便别人拿到了你的私钥文件,没有这个密码也无法使用。

执行完成后,你的密钥保存在 C:\Users\你的用户名\.ssh\ 文件夹下:

  • id_ed25519.pub公钥(给服务器看的)。
  • id_ed25519私钥(绝对不能泄露,相当于你的“身份证”)。

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

你可以手动复制,也可以使用 PowerShell 命令。最简单的方法是:

  1. 在 Windows 终端输入命令查看公钥内容:

    Terminal window
    type %USERPROFILE%\.ssh\id_ed25519.pub
  2. 复制显示出来的这行以 ssh-ed25519 ... 开头的长字符串。

  3. 使用密码登录到你的 Linux 服务器。

  4. 在服务器上执行:

    Terminal window
    mkdir -p ~/.ssh
    nano ~/.ssh/authorized_keys
  5. 将刚才复制的内容粘贴进去,按 Ctrl+O 保存,Ctrl+X 退出。

  6. 设置正确权限(非常重要):

    Terminal window
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

第三步:测试密钥登录#

在禁用密码之前,必须先确认密钥登录能否成功

在 Windows 终端尝试登录:

Terminal window
ssh 用户名@服务器IP

如果不再提示输入服务器用户密码(或者提示你输入刚才设置的 Passphrase),说明密钥验证已生效。


第四步:停用密码登录#

确认密钥工作正常后,修改服务器的 SSH 配置文件。

  1. 在服务器上打开配置:

    Terminal window
    sudo nano /etc/ssh/sshd_config
  2. 找到以下几项并确保修改为:

    • PasswordAuthentication no(确保前面没有 #
    • PubkeyAuthentication yes
    • ChallengeResponseAuthentication no
  3. 保存退出,并重启 SSH 服务

    Terminal window
    sudo systemctl restart ssh
注意: 此时请勿关闭当前的 SSH 连接窗口!先开一个新窗口测试是否还能登录。如果新窗口登录失败,你还能在当前窗口改回来。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

SSH密钥登陆
https://blog.civer.cn/posts/login-by-sshkey/
作者
Quisper
发布于
2026-02-10
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Quisper
Hello, I'm Quisper.
公告
溯万物之源起,记一叶之清秋。欢迎来到我的博客!很高兴认识你👋
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
8
分类
2
标签
14
总字数
10,622
运行时长
0
最后活动
0 天前
总访问量
0
总访客数
0

目录