# 第十一章 开启SSH服务

#### 1、安装时选择上SSH，或者源码安装SSH，并设置开机自启动服务

#### 2、使用root登陆系统

#### 3、使用vi编辑器编辑/etc/inetd.conf，去掉ssh前的#，按ctrl+c，再输入exit保存退出（如果是后续安装服务的情况）

#### 4、编辑/etc/rc.conf，添加以下内容（如果是后续安装服务的情况）

```
sshd_enable="YES"
```

#### 或用以下命令

```
# sysrc sshd_enable="YES"
```

#### 5、编辑/etc/ssh/sshd\_config，修改以下内容，保存退出

```
#port=22 改为 Port=number //你想修改的数字
#PermitRootLogin no 改为 PermitRootLogin yes //允许root登陆
#PasswordAuthentication no 改为 PasswordAuthentication yes //使用系统PAM认证
#PermitEmptyPasswords no 改为 PermitEmptyPasswords no //不允许空密码
#UseDNS no 改为 UseDNS no
#GSSAPIAuthentication no 改为 GSSAPIAuthentication no //提升ssh登录速度
```

#### 6、重启SSH服务

```
/etc/rc.d/sshd restart
```

#### 7、查看服务是否启动，netstat -an，如果看到22端口有监听，恭喜！！！

```
# netstat -an | grep "22"
tcp4       0     96 192.168.253.128.22     192.168.253.1.10400    ESTABLISHED
tcp4       0      0 *.22                   *.*                    LISTEN     
tcp6       0      0 *.22                   *.*                    LISTEN  
```

### 额外说明：

### **优化SSH连接速度（默认是最优状态，不需要优化，只需要确认配置参数即可）**

**什么是UseDNS?**

UseDNS为服务器反向解析，假如 UseDNS选项是打开的话，服务器会先根据客户端的 IP地址进行 DNS PTR反向查询出客户端的主机名，然后根据查询出的客户端主机名进行DNS正向A记录查询，并验证是否与原始 IP地址一致，通过此种措施来防止客户端欺骗。 服务器默认在/etc/ssh/sshd\_config配置文件中默认没有启用。

**如何关闭？**

```
# cat /etc/ssh/sshd_config

UseDNS no       //查看确认为未启用状态
```

**什么是GSSAPIAuthentication?**

GSSAPIAuthentication是基于 GSSAPI 的用户认证，服务器端默认为启用了GSSAPI。登陆的时候客户端需要对服务器端的IP地址进行反解析，如果服务器的IP地址没有配置PTR记录，那么就会在这里卡住。

**如何关闭？**

手动修改/etc/ssh/sshd\_config文件中#GSSAPIAuthentication yes为GSSAPIAuthentication no 也可以使用下面的脚本：

```
# cat /etc/ssh/sshd_config 

GSSAPIAuthentication no     //查看确认为未启用状态
```

注意，如果修改以上操作后，需要重启ssh服务：

```
service sshd restart
```

### **参考资料：**[**https://man.openbsd.org/sshd\_config**](https://man.openbsd.org/sshd_config)
