Linux sshd_config配置手册中文版


**Linux sshd_config配置手册中文版**

`sshd_config`是OpenSSH服务器守护进程(sshd)的配置文件,它位于`/etc/ssh/sshd_config`。该文件由一系列“指令 值”对组成,每行一个,用于定义SSH服务器的各种行为和安全性设置。以下是`sshd_config`中一些重要配置项的中文说明:

### 1. 基本设置

- **Port**: 指定SSH服务监听的端口号,默认是22。

- **AddressFamily**: 指定sshd应使用的地址族,可以是`any`(默认,支持IPv4和IPv6)、`inet`(仅IPv4)或`inet6`(仅IPv6)。

- **ListenAddress**: 设置sshd监听的IP地址。如果希望sshd监听所有地址,可以设置为`0.0.0.0`(IPv4)或`::`(IPv6)。

- **Protocol**: 指定sshd支持的SSH协议版本,可以是`2`、`1`或`2,1`(同时支持两个版本)。

### 2. 私钥管理

- **HostKey**: 指定SSH协议版本1和版本2使用的私钥文件路径。这些文件通常包括`ssh_host_rsa_key`、`ssh_host_dsa_key`、`ssh_host_ecdsa_key`和`ssh_host_ed25519_key`等。

- **KeyRegenerationInterval**: 设置SSH版本1中私钥的重新生成间隔(以秒为单位)。

- **ServerKeyBits**: 设置SSH版本1中服务器密钥的长度。

### 3. 日志记录

- **SyslogFacility**: 指定日志消息的系统日志工具(syslog)的设施(facility)。默认是`AUTH`。

- **LogLevel**: 设置日志记录的详细级别,如`INFO`、`DEBUG`等。

### 4. 安全设置

- **PermitRootLogin**: 控制是否允许root用户通过SSH登录。可设置为`yes`、`no`、`prohibit-password`(允许密钥登录但禁止密码登录)等。

- **StrictModes**: 如果设置为`yes`,则sshd会检查用户主目录和相关的配置文件权限是否过于宽松,以避免潜在的安全风险。

- **MaxAuthTries**: 设置每个连接的最大认证尝试次数。

- **MaxSessions**: 设置每个连接的最大会话数。

- **PasswordAuthentication**: 控制是否允许基于密码的认证。

- **PermitEmptyPasswords**: 控制是否允许密码为空的用户登录。建议设置为`no`。

- **ChallengeResponseAuthentication**: 是否允许质疑-应答(challenge-response)认证。

### 5. 认证方式

- **PubkeyAuthentication**: 控制是否允许基于公钥的认证。

- **AuthorizedKeysFile**: 指定存放用户公钥的文件路径,默认为`~/.ssh/authorized_keys`。

- **RSAAuthentication**: 对于SSH版本1,控制是否允许RSA公钥认证。

- **HostbasedAuthentication**: 对于SSH版本2,控制是否允许基于主机的认证。

### 6. 其他设置

- **PrintMotd**: 是否在登录后显示`/etc/motd`文件的内容。

- **PrintLastLog**: 是否显示上次登录的信息。

- **TCPKeepAlive**: 是否启用TCP KeepAlive,以确保连接的活跃性。

- **GSSAPIAuthentication**: 是否允许使用基于GSSAPI的用户认证。

- **UsePAM**: 是否启用Pluggable Authentication Modules(PAM)进行用户认证。

### 注意事项

- 配置文件中以`#`开头的行和空行将被忽略。

- 值是大小写敏感的,但指令本身(如`Port`、`AddressFamily`等)是大小写无关的。

- 如果值中包含空格或特殊字符,可以使用双引号(`"`)将其括起来。

通过合理配置`sshd_config`,可以确保SSH服务器的安全性和效率。在实际应用中,应根据具体需求和安全策略进行调整。