### Linux 下 SSH 配置详解 #### 一、配置文件详解 在 Linux 系统中,SSH 服务的配置文件通常位于 `/etc/ssh/sshd_config`。此文件包含了 SSH 服务的各项设置,包括但不限于安全性配置、登录权限管理等。 ##### 1.1 基本配置项解释 - **Port**: 指定 SSH 服务监听的端口,默认为 22。 - **Protocol**: 定义 SSH 协议版本,一般设置为 2。 - **HostKey**: 指定 SSH 服务器的公钥文件位置。 - **KeyRegenerationInterval**: 密钥重新生成的时间间隔,单位为秒。 - **ServerKeyBits**: 用于指定服务器密钥的长度。 - **SyslogFacility**: 日志记录级别。 - **LogLevel**: 日志记录的详细程度。 - **LoginGraceTime**: 允许的登录尝试时间,单位为秒。 - **PermitRootLogin**: 是否允许 root 用户登录。 - **PubkeyAuthentication**: 是否允许使用公钥认证。 - **AuthorizedKeysFile**: 授权公钥文件的位置。 - **RhostsAuthentication**: 是否启用 rhosts 文件认证。 - **IgnoreRhosts**: 是否忽略 rhosts 文件。 - **HostbasedAuthentication**: 是否启用基于主机的认证。 - **PasswordAuthentication**: 是否允许密码认证。 - **PermitEmptyPasswords**: 是否允许空密码登录。 - **ChallengeResponseAuthentication**: 是否启用挑战响应认证机制。 - **MaxStartups**: 最大并发连接数。 - **Subsystems**: 启用的子系统。 ##### 1.2 示例配置 ```bash Port 22 Protocol 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key KeyRegenerationInterval 3600 ServerKeyBits 768 SyslogFacility AUTH LogLevel INFO LoginGraceTime 600 PermitRootLogin yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys RhostsAuthentication no IgnoreRhosts yes HostbasedAuthentication no PasswordAuthentication no PermitEmptyPasswords no ChallengeResponseAuthentication no MaxStartups 20 Subsystems sftp /usr/libexec/openssh/sftp-server ``` #### 二、使用公钥认证 **2.1 公钥认证原理** 公钥认证是一种无需输入密码即可完成身份验证的方式。用户在本地生成一对密钥(公钥和私钥),并将公钥放置于服务器用户的 `.ssh/authorized_keys` 文件中。登录时,SSH 客户端使用私钥对一段数据进行加密发送给服务器,服务器使用存储的公钥解密数据以验证用户身份。 **2.2 启用公钥认证步骤** 1. 修改 `/etc/ssh/sshd_config` 配置文件,将 `PasswordAuthentication` 设置为 `no`,禁用密码认证。 2. 使用 `ssh-keygen -t rsa` 在本地生成 RSA 类型的密钥对。 3. 将生成的公钥文件 `id_rsa.pub` 的内容复制到服务器用户的 `.ssh/authorized_keys` 文件中。 4. 移动公钥文件并重命名: ```bash mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys ``` 5. 将私钥文件拷贝到客户端相应的目录中以便使用。 #### 三、SSH 服务配置 **3.1 SSH 服务配置要点** 1. **监听端口**: 可以根据需要更改监听端口来增强安全性。 2. **协议版本**: 建议仅使用 SSHv2,以提高安全性。 3. **监听地址**: 默认情况下,SSH 服务会监听所有 IP 地址。可以通过设置 `ListenAddress` 来指定监听特定的 IP 地址。 4. **登录控制**: 限制 root 登录或禁止空密码登录。 5. **认证方式**: 可以选择公钥认证、密码认证等多种认证方式组合使用。 通过以上步骤,可以在 Linux 系统中配置一个既安全又实用的 SSH 服务。此外,还可以进一步优化配置,例如使用防火墙规则来进一步限制 SSH 访问,或者定期更新 SSH 服务软件来修复已知的安全漏洞。
- 粉丝: 1
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助