1.2. 生成 SSH 密钥对
您可以使用在本地系统上生成的 SSH 密钥对,并将生成的公钥复制到 OpenSSH 服务器来在不输入密码的情况下登录到 OpenSSH 服务器。每个要创建密钥的用户都必须运行此流程。
要在重新安装系统后保留之前生成的密钥对,请在创建新密钥前备份 ~/.ssh/
目录。重新安装后,将其复制到主目录中。您可以为系统中的所有用户(包括 root
用户)进行此操作。
先决条件
- 您已经以希望使用密钥连接到 OpenSSH 服务器的用户的身份登录了。
- OpenSSH 服务器被配置为允许基于密钥的身份验证。
流程
生成一个 ECDSA 密钥对:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您还可以使用没有任何参数的
ssh-keygen
命令生成一个 RSA 密钥对,或通过输入ssh-keygen -t ed25519
命令生成一个 Ed25519 密钥对。请注意,Ed25519 算法不符合 FIPS-140,OpenSSH 在 FIPS 模式下无法使用 Ed25519 密钥。将公钥复制到远程机器上:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<username>@<ssh-server-example.com>
替换为您的凭证。如果您没有在会话中使用
ssh-agent
程序,上一个命令会复制最新修改的~/.ssh/id*.pub
公钥。要指定另一个公钥文件,或在ssh-agent
内存中缓存的密钥优先选择文件中的密钥,使用带有-i
选项的ssh-copy-id
命令。
验证
使用密钥文件登录到 OpenSSH 服务器:
ssh -o PreferredAuthentications=publickey <username>@<ssh-server-example.com>
$ ssh -o PreferredAuthentications=publickey <username>@<ssh-server-example.com>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow