教程

如何设置免密码 SSH(密钥登录)

免密码 SSH 是用密钥而非密码登录——更方便也更安全。三步:生成密钥、把公钥复制到服务器、(可选)禁用密码登录。

CC Chen Chen· 创始人·2026 年 6 月 14 日·阅读 6 分钟

三步搞定免密码 SSH

"免密码"SSH 不是没有安全——是用密钥登录、不再每次输密码。它既更方便也更安全。三步:生成密钥对把公钥复制到服务器、(可选)关掉密码登录让只有密钥能用。下面是全流程。

第 1 步 —— 生成密钥对

在你的机器上,创建一把 Ed25519 密钥(现代、快、安全——见 Ed25519 vs RSA):

ssh-keygen -t ed25519 -C "[email protected]"

回车接受默认位置。它会问你设个口令(passphrase)——它把磁盘上的私钥加密。要真正一步登录可以留空,但口令 + ssh-agent 能兼得安全与便利。这会生成两个文件:id_ed25519(私钥——永不外传)和 id_ed25519.pub(公钥——放到服务器上)。

第 2 步 —— 把公钥复制到服务器

公钥那半必须在服务器的 ~/.ssh/authorized_keys 里。简单做法:

ssh-copy-id user@host

它让你最后输一次密码、装好密钥。(没有 ssh-copy-id,或在 Windows?见 完整复制密钥指南。)现在重连——ssh user@host 应该不用密码就登进去。还要密码的话,看 SSH 还在要密码

第 3 步 —— 关掉密码登录(可选,推荐)

密钥登录生效后,你可以彻底禁用密码,让暴破毫无意义。在服务器 /etc/ssh/sshd_config:

PasswordAuthentication no
PubkeyAuthentication yes

然后 sudo systemctl restart ssh重要:断开前,先在另一个会话里确认密钥登录可用——否则一个失误就可能把自己锁在外面。再配上 禁用 root 登录fail2ban,基线就稳了。

为什么密钥胜过密码

密钥是一个 256 位的秘密,从不传到服务器——传的只是一个签名——所以线上没有东西可被钓鱼或暴破。密码能被猜;机器人每天用上百万个密码轰炸 22 端口。只用密钥认证时,那些尝试根本不可能成功。更多权衡:SSH 密钥 vs 密码

在手机上免密码 SSH

同样的模型在移动端也成立,好的客户端把它变成一个流程:TermAI 在设备 Keychain 里生成 Ed25519 密钥,一键部署到服务器把公钥装进 authorized_keys——第 1、2 步无需终端。之后你用密钥连接,不用在触屏键盘上敲密码。

手机用密钥登录服务器,无需密码
移动端免密码登录:App 生成并部署密钥,然后用它连接——不用在玻璃上敲密码。

常见问题

怎么设置免密码 SSH?
ssh-keygen -t ed25519 生成密钥,用 ssh-copy-id user@host 把公钥复制到服务器,然后重连——用密钥登录、无需密码。可选地在 sshd_config 里禁用密码认证。

免密码 SSH 安全吗?
比密码更安全——密钥从不过网,无法被钓鱼或暴破。彻底禁用密码认证后,暴破尝试根本不可能成功。

密钥要设口令吗?
最好设——它把磁盘上的私钥加密。用 ssh-agent 让你每个会话只输一次、仍是一步登录。

禁用密码会把自己锁在外面吗?
只有在密钥登录还没生效时才会。禁用密码认证前,务必在另一个会话里确认密钥能登。

快速事实

  • 三步:生成密钥 → 把公钥复制到服务器 →(可选)禁用密码认证
  • 生成:ssh-keygen -t ed25519
  • 安装:ssh-copy-id user@host
  • 加固:sshd_config 里 PasswordAuthentication no(先确认密钥登录可用)
  • 移动端:一键生成+部署(TermAI),然后密钥登录
Try TermAI

Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.

CC
Chen Chen — Founder of TermAI

Writes about mobile DevOps, terminal UX, and the surprising depth of "boring" infrastructure.

Was this useful? ← Back to blog