A-A+

在乌班图(Ubuntu)系统中设置密钥登录的四个步骤

2023年05月22日 VPS评价 等您评论

在乌班图(Ubuntu)系统中设置密钥登录主要分为以下几个步骤:

1. 在客户端生成 SSH 密钥对
2. 将公钥添加到服务器的 `authorized_keys` 文件中
3. 测试密钥登录
4. (可选)禁用密码登录


**步骤 1:在客户端生成 SSH 密钥对**

打开终端,使用 `ssh-keygen` 命令生成 SSH 密钥对:

```bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
```

按照提示操作,可以选择默认路径,也可以自定义密钥文件保存路径。设置完成后,你将在 `~/.ssh` 目录下看到两个文件:`id_rsa`(私钥)和 `id_rsa.pub`(公钥)。

**步骤 2:将公钥添加到服务器的 `authorized_keys` 文件中**

使用 `ssh-copy-id` 命令将公钥添加到服务器上:

```bash
ssh-copy-id -i ~/.ssh/id_rsa.pub your_username@your_server_ip
```

如果服务器上没有 `ssh-copy-id` 命令,可以通过以下方式手动将公钥添加到服务器:

首先,将公钥内容复制到剪贴板:

```bash
cat ~/.ssh/id_rsa.pub
```

然后,通过 SSH 登录到服务器:

```bash
ssh your_username@your_server_ip
```

在服务器上创建 `~/.ssh` 目录(如果不存在):

```bash
mkdir -p ~/.ssh
```

将公钥内容添加到 `authorized_keys` 文件中:

```bash
echo "PASTE_YOUR_PUBLIC_KEY_HERE" >> ~/.ssh/authorized_keys
```

并设置合适的权限:

```bash
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
```

**步骤 3:测试密钥登录**

退出当前 SSH 会话,然后尝试使用密钥登录:

```bash
ssh your_username@your_server_ip
```

如果一切正常,你将无需输入密码即可登录到服务器。

**步骤 4:(可选)禁用密码登录**

出于安全考虑,你可以禁用密码登录。请确保密钥登录正常工作后再执行此步骤。

编辑 SSH 配置文件:

```bash
sudo nano /etc/ssh/sshd_config
```

找到 `PasswordAuthentication` 选项,将其值设置为 `no`:

```ini
PasswordAuthentication no
```

保存并退出。然后重启 SSH 服务:

```bash
sudo systemctl restart ssh
```

现在,服务器将仅接受密钥登录。

完成以上步骤后,你应该已经成功设置了密钥登录。如果仍然遇到问题,请检查防火墙设置和 SSH 配置,确保它们没有阻止密钥登录。

给我留言