在Linux系统下,生成免密钥的 SSH 密钥对的过程比较简单。以下是生成免密钥 SSH 密钥的步骤:
1. 生成 SSH 密钥对
1. 打开终端。
2. 运行以下命令生成 SSH 密钥对:
```bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
```
- `-t rsa`:指定密钥类型为 RSA(默认是 RSA)。
- `-b 4096`:指定密钥的长度为 4096 位,可以选择更高的安全级别。
- `-C`:添加一个注释(通常是你的邮箱地址)。
3. 系统会提示你指定密钥文件的存储位置,通常默认路径为 `~/.ssh/id_rsa`,如果没有特别需要,可以直接按回车键使用默认路径。
4. 系统会询问你是否设置密码。为了生成免密钥登录,直接按回车键跳过(也就是不设置密码)。
2. 将公钥复制到目标服务器
1. 使用 `ssh-copy-id` 命令将公钥复制到远程服务器上:
```bash
ssh-copy-id username@remote_host
```
- `username` 是目标服务器的用户名。
- `remote_host` 是目标服务器的 IP 地址或主机名。
如果你没有安装 `ssh-copy-id`,可以手动将公钥内容复制到目标服务器的 `~/.ssh/authorized_keys` 文件中。
具体步骤:
- 查看本地公钥内容:
```bash
cat ~/.ssh/id_rsa.pub
```
- 复制公钥内容。
- 登录到远程服务器,在目标用户的 `~/.ssh/` 目录下(如果没有 `~/.ssh/` 目录,先创建它),将公钥粘贴到 `authorized_keys` 文件中:
```bash
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys
```
将公钥粘贴到文件中,保存并退出。
2. 确保 `~/.ssh/` 目录和 `authorized_keys` 文件权限正确:
```bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
```
3. 测试免密登录
在完成上述步骤后,你应该可以使用 SSH 免密码登录到远程服务器:
```bash
ssh username@remote_host
```
如果一切设置正确,你将能够直接登录而无需输入密码。
这样你就成功配置了 SSH 免密钥登录!