如何在`sshd_config`中配置只接受特定证书?
时间: 2024-09-18 08:03:38 浏览: 29
在`sshd_config`文件中,你可以通过`PubkeyAuthentication`和`AuthorizedKeysFile`设置来控制哪些公钥被接受。如果你只想让服务器接受特定的几个证书,你需要采取以下几个步骤:
1. **添加公钥到系统账户**: 将每个你需要的公钥 (`id_rsa_1.pub`, `id_rsa_2.pub`, 等) 文件内容添加到用户的`.ssh/authorized_keys`文件或为其创建一个单独的文件,如`.ssh/keys_1`、`.ssh/keys_2`等。
2. **启用公钥认证**:
- 找到`sshd_config`中的`PasswordAuthentication`行,并将其更改为`no`,以禁止密码认证,仅允许公钥认证。
```
PasswordAuthentication no
```
3. **指定公钥文件**:
- 如果你想将证书分组存储,可以在`sshd_config`中添加`AuthorizedKeysFile`选项,指定包含特定证书的文件路径,而不是默认的`.ssh/authorized_keys`。例如:
```
AuthorizedKeysFile .ssh/keys_1 .ssh/keys_2
```
这样,`sshd`将会查找这两个文件。
4. **限制访问**:
- 使用`Match`或`Host`指令,可以进一步限制哪些证书适用于特定主机名或网络地址。
记得保存并重启`sshd`服务以便更改生效:
```bash
sudo service ssh restart
```
阅读全文