跳到主要内容
系统常识 UbuntuSSH密钥免密登录

Ubuntu SSH 密钥免密登录配置

从本机生成 SSH 密钥对、把公钥拷到 Ubuntu 服务器实现免密登录:ssh-keygen 与 ssh-copy-id 的标准流程、私钥保管纪律、以及密钥登录失败先查什么。

发布于 2026/11/11 所属频道 Ubuntu 与 Debian

结论先行

Ubuntu 上配免密登录的标准两步:本机 ssh-keygen 生成密钥对 → ssh-copy-id 把公钥送到目标机(Ubuntu 26.04 Live Server 条目 对应的服务器即目标;桌面版 条目 也适用);私钥永远不离开本机,只传 .pub 公钥。

标准流程

# 本机(Windows 自带 ssh 或 Ubuntu 桌面)
ssh-keygen -t ed25519 -C "备注"     # 一路回车即可,设 passphrase 更安全
ssh-copy-id 用户名@服务器IP          # 输一次口令,之后免密
ssh 用户名@服务器IP                  # 验证免密登录
  • ssh-copy-id 本质是把 ~/.ssh/id_ed25519.pub 追加到目标机 ~/.ssh/authorized_keys。
  • 没有 ssh-copy-id(部分精简系统)就手动把公钥追加进目标机的 authorized_keys,目录 700、文件 600。

目标机要具备的条件

  • sshd 服务在跑:systemctl status ssh。
  • 允许公钥认证:sshd_config 里 PubkeyAuthentication yes(默认即开,改过才查)。
  • 密钥文件权限对:~/.ssh 700、authorized_keys 600,权限过宽 sshd 会拒绝。

免密仍失败先查这几处

  1. ssh -v 用户名@IP 看握手日志:卡在 password 说明公钥没被接受。
  2. 目标机 journalctl -u ssh 看 sshd 拒绝原因(常见是权限或 authorized_keys 放错家目录)。
  3. 确认 ssh-copy-id 用的是同一对密钥(多把密钥时用 -i 指定)。

私钥带 passphrase 时每次登录要再输一次口令,这是特性不是 bug;怕麻烦可以不设,但密钥文件落地的机器被偷/被读时,无 passphrase 私钥 = 直接能登录。

相关链接

本文内容基于公开资料整理,仅供参考;涉及授权与合规的操作请以厂商官方文档为准。

相关推荐下载

按本文主题匹配的官方原版镜像条目

配套 PE 工具

制作启动盘、备份数据、修复引导

其他常识文章

同一集合内的相近主题,按标签与关键词匹配