固定链接 SSH 服务端常用配置解析

SSH 服务端常用配置解析

SSH 服务端常用配置解析

SSH 服务端常用配置解析

SSH 命令是 OpenSSH 套件中的客户端连接工具,可以给予 SSH 加密协议实现安全的远程登录服务器。

SSH 工具是最常用的连接服务器的方式之一,提供了客户端和服务器之间的安全通道。合理的 SSH 配置可以提供方便的登录方式,还可以有效的保护服务器不被轻易的入侵。

本文介绍了几个最常用的配置项,希望可以帮助读者快速掌握 SSH 服务端配置方法,本文所有的示例都使用滴滴云服务器(DC2, CentOS7.5系统)完成。

几个常用配置

大多数配置项都在 /etc/ssh/sshd_config 中,每次修改之后需要重启 sshd 才能生效。

  • PermitRootLogin:是否允许 root 账号直接登录。如果设置为 no,将无法以 root 身份直接登录。
  • PermitEmptyPasswords:是否允许空密码登录。如果设置为 yes 并且登录的用户密码为空,则可以使用这个用户免密码登录。
  • PasswordAuthentication:是否允许密码登录。如果设置为 no,所有用户不允许通过密码登录。
  • UseDNS:设置为 yes 时,当客户端试图登录 SSH 服务器时,服务器端先根据客户端的IP地址进行 DNS PTR 反向查询出客户端的主机名,然后根据查询出的客户端主机名进行 DNS 正向 A 记录查询,验证与其原始 IP 地址是否一致。多数情况下,设置为 no 可以节约时间。

如何通过 SSHKey登录 SSH 服务器

除了密码,还可以使用 RSA|DSA 加密方式登录 SSH 服务器。需要在客户端生成密钥文件和私钥文件,将 .pub 文件追加到服务器 ~/.ssh/authorized_keys 中,后续的登录就可以省略输入密码的步骤,更方便,更安全。例如:

客户端:

服务端:

在客户端登录服务端:

连接超时设置

  • ClientAliveInterval:SSH 服务向 Client 发送探活信息的时间间隔,
  • ClientAliveCountMax:SSH 服务想 Client 发送探活信息,没有收到回应次数的最大值。

假设设置为:

  • ClientAliveInterval:60
  • ClientAliveCountMax:2

每隔 60 秒,服务端将向客户端发送探活信息,如果连续两次没有收到回应,服务端断开 SSH 连接。这两个配置还依赖 SSH 客户端的配置,需要综合使用。

  • TCPKeepAlive:TCP 层是否保持连接

登录提示

Banner/match,设置登录提示,例如:

当以 dc2-user 以外的身份(例如 root)登录的时候,会看到提示:

本文作者:姚旭

您的留言将激励我们越做越好