Rain WikiWindows · Linux · Android

SSH 密钥

概念OpenSSH可安全删除: 否

使用 SSH 密钥,您无需密码即可登录服务器。密钥对包含一个保留在您计算机上的私钥和一个复制到服务器 ~/.ssh/authorized_keys 文件的公钥。密钥使用 OpenSSH 的一部分 ssh-keygen 创建。

1密钥类型

Ed25519 密钥简短、快速且受所有当前 OpenSSH 版本支持;ssh-keygen -t ed25519 用于创建一个。为了兼容旧系统,仍然支持 RSA 密钥,且其长度应至少为 3072 位。

2密码短语和代理

密码短语用于加密磁盘上的私钥,因此仅凭被窃取的文件无法使用该密钥。ssh-agent 将解锁的密钥保留在内存中,因此每个会话只需输入一次密码短语。

3权限

如果密钥文件权限过于开放,OpenSSH 将拒绝使用它们。私钥应仅允许其所有者读取(600),并且服务器上的 ~/.ssh 和 authorized_keys 必须不允许其他人写入。

如何设置密钥登录

  1. 在您的计算机上创建密钥:ssh-keygen -t ed25519
  2. 接受默认文件并输入密码短语。
  3. 将公钥复制到服务器:ssh-copy-id user@server
  4. 登录以测试:ssh user@server
  5. 仅在密钥生效后,再考虑关闭服务器上的密码登录。

注意事项

  • 切勿共享或上传私钥(不带 .pub 后缀的文件)。
  • 在关闭密码身份验证之前,请在第二个会话中测试密钥登录,否则您可能会把自己锁在系统之外。

资料来源

  1. ssh-keygen(1) 手册页 (OpenBSD) man.openbsd.org
  2. sshd(8) 手册页,AUTHORIZED_KEYS 文件格式 (OpenBSD) man.openbsd.org

最后审核: