SSH 密钥
使用 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 必须不允许其他人写入。
如何设置密钥登录
- 在您的计算机上创建密钥:
ssh-keygen -t ed25519 - 接受默认文件并输入密码短语。
- 将公钥复制到服务器:
ssh-copy-id user@server - 登录以测试:
ssh user@server - 仅在密钥生效后,再考虑关闭服务器上的密码登录。
注意事项
- 切勿共享或上传私钥(不带 .pub 后缀的文件)。
- 在关闭密码身份验证之前,请在第二个会话中测试密钥登录,否则您可能会把自己锁在系统之外。
相关文章
- 文件权限:chmod 与 chownLinux 的读、写和执行权限是如何工作的,755 和 644 的含义,以及如何安全地更改所有者和模式。
- UFW (Uncomplicated Firewall)介绍 UFW 如何管理 Ubuntu 上的 Linux 防火墙、如何在启用前允许 SSH,以及如何列出和删除规则。
- rsyncrsync 是如何复制和同步文件的、末尾斜杠的作用,以及如何在 --delete 之前使用 --dry-run 进行测试。
资料来源
- ssh-keygen(1) 手册页 (OpenBSD) man.openbsd.org
- sshd(8) 手册页,AUTHORIZED_KEYS 文件格式 (OpenBSD) man.openbsd.org
最后审核: