如何在 Linux 中安装和配置 OpenSSH 服务器?


OpenSSH 是一款开源工具,用于在网络上的不同机器之间提供安全加密的通信。它广泛用于基于 Linux 的系统中,作为安全访问和管理远程服务器的一种方式。在本文中,我们将讨论如何在 Linux 中安装和配置 OpenSSH 服务器。

步骤 1:检查 OpenSSH 是否已安装

安装过程的第一步是检查 OpenSSH 是否已安装在您的 Linux 机器上。为此,打开您的终端并键入以下命令:

ssh -V

如果 OpenSSH 已安装,则命令将显示软件的版本号。如果未安装,则命令将显示错误消息。

步骤 2:安装 OpenSSH

如果 OpenSSH 未安装,您可以使用 Linux 发行版的包管理器进行安装。包名称可能因您使用的 Linux 发行版而异。以下是使用一些流行的 Linux 发行版安装 OpenSSH 的命令:

Ubuntu/Debian

sudo apt-get update
sudo apt-get install openssh-server

Fedora/CentOS

sudo yum update
sudo yum install openssh-server

Arch Linux

sudo pacman -S openssh

步骤 3:配置 OpenSSH

安装 OpenSSH 后,下一步是配置它。OpenSSH 的主配置文件位于 /etc/ssh/sshd_config。您可以使用 nano 或 vim 等文本编辑器打开此文件。在编辑配置文件之前,请备份该文件。

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

备份配置文件后,您可以使用首选的文本编辑器开始编辑原始文件。一些重要的配置选项包括:

  • 端口 - 此选项设置 OpenSSH 将侦听传入连接的端口号。默认端口号为 22,但出于安全原因,最好将其更改为其他端口号。

  • PermitRootLogin - 此选项指定是否允许 root 用户通过 SSH 登录。建议将此选项设置为 no,并创建一个具有管理员权限的单独用户帐户。

  • PasswordAuthentication - 此选项指定是否允许基于密码的身份验证。建议将此选项设置为 no,并改为使用公钥身份验证。

  • PubkeyAuthentication - 此选项指定是否允许公钥身份验证。建议将此选项设置为 yes。

编辑完配置文件后,保存更改并退出编辑器。然后,重新启动 OpenSSH 服务器以应用新配置。

sudo systemctl restart sshd

步骤 4:创建 SSH 密钥

要使用 OpenSSH 的公钥身份验证,您需要在本地计算机上生成一对 SSH 密钥。您可以使用 ssh-keygen 命令生成密钥。

ssh-keygen -t rsa -b 4096

此命令将生成一对 RSA 密钥,密钥长度为 4096 位。密钥将存储在 ~/.ssh 目录中。

步骤 5:将公钥复制到服务器

生成 SSH 密钥后,您需要将公钥复制到远程服务器。您可以使用 ssh-copy-id 命令将公钥复制到服务器。

ssh-copy-id username@server-ip-address

将 username 和 server-ip-address 替换为远程服务器的用户名和 IP 地址。此命令将提示您输入远程服务器的密码。输入密码后,此命令将把您的公钥复制到远程服务器的 authorized_keys 文件中。

步骤 6:使用 SSH 密钥登录

将公钥复制到服务器后,您可以使用公钥身份验证登录到远程服务器。为此,请使用 ssh 命令并使用 -i 选项指定私钥文件的位置。

ssh -i ~/.ssh/id_rsa username@server-ip-address

将 username 和 server-ip-address 替换为远程服务器的用户名和 IP 地址。ssh 命令将使用您的私钥对连接进行身份验证,您将登录到远程服务器而无需输入密码。

步骤 7:故障排除

如果您在安装或配置 OpenSSH 期间遇到任何问题,您可以检查一些内容来解决问题。

检查 OpenSSH 日志:OpenSSH 日志存储在 /var/log/auth.log 文件中。您可以使用 tail 命令查看日志文件的最后几行。

sudo tail -f /var/log/auth.log
  • 检查防火墙设置 - 如果您无法连接到 OpenSSH 服务器,请检查您的防火墙设置,以确保端口 22(或您指定的自定义端口)已打开。

  • 检查 SELinux 设置 - 如果您使用的是启用了 SELinux 的 Linux 发行版,则可能需要修改 SELinux 设置以允许 OpenSSH 正确运行。

除了本文中讨论的基本配置选项外,OpenSSH 还提供各种高级选项,可以根据您的特定需求进行自定义。以下是一些有用的 OpenSSH 配置选项的示例:

  • AllowUsers - 此选项指定允许通过 SSH 登录的用户列表。所有其他用户都将被拒绝访问。如果您想将 SSH 访问权限限制到特定用户组,这将非常有用。

  • ClientAliveInterval - 此选项指定 OpenSSH 服务器在发送保持活动消息到客户端之前的时间间隔(以秒为单位)。如果您使用的是关闭空闲连接的 NAT 或防火墙,这将非常有用。

  • Compression - 此选项指定是否应为通过 SSH 连接传输的数据使用压缩。在速度慢或延迟高的连接上启用压缩可以提高性能。

  • X11Forwarding - 此选项指定是否应启用 X11 转发。X11 转发允许在远程服务器上运行图形应用程序并在本地计算机上显示。

  • TCPKeepAlive - 此选项指定是否应使用 TCP 保持活动。TCP 保持活动用于检测并关闭已过时或死锁的连接。

要使用这些选项,只需将它们添加到 /etc/ssh/sshd_config 文件中,并遵循与其他配置选项相同的格式。

OpenSSH 还提供了一些用于管理 SSH 连接和密钥的工具和实用程序。以下是一些示例:

  • ssh-add - 此工具用于将 SSH 密钥添加到 SSH 代理。SSH 代理是一个程序,它存储私钥并提供了一种无需每次都输入密码即可使用它们的方法。

  • ssh-keyscan - 此实用程序用于从远程服务器检索 SSH 公钥。如果您想将服务器的公钥添加到您的 known_hosts 文件中,这将非常有用。

  • ssh-copy-id - 此工具用于将您的 SSH 公钥复制到远程服务器的 authorized_keys 文件中。这是一种方便的设置公钥身份验证的方法。

值得注意的是,虽然 OpenSSH 通常被认为是管理远程服务器的安全可靠的方式,但仍然需要采取其他安全措施来保护您的系统。以下是一些保护 OpenSSH 服务器的安全最佳实践:

  • 使用强密码 - 如果您确实需要对 SSH 使用密码身份验证,请确保使用难以猜测的强密码。避免使用常见的单词或短语,并使用大小写字母、数字和符号的组合。

  • 使用公钥身份验证 - 公钥身份验证通常被认为比密码身份验证更安全,因为它不依赖于可以猜测或截获的共享密钥。确保为每个用户生成强大且唯一的密钥对,并将私钥安全地存储在客户端计算机上。

  • 限制 SSH 访问 - 将 SSH 访问权限限制到特定用户组或 IP 地址可以帮助降低未经授权访问的风险。您可以使用 sshd_config 文件中的 AllowUsers 和 AllowGroups 选项来限制访问,并且可以使用防火墙规则来限制对特定 IP 地址的访问。

  • 使用双因素身份验证 - 双因素身份验证通过除了密码或密钥对之外,还需要第二个因素(例如硬件令牌或移动应用程序)来为您的 SSH 连接添加额外的安全层。

  • 保持 OpenSSH 软件更新 - 与任何软件一样,OpenSSH 也可能存在攻击者可以利用的漏洞。确保使用最新的安全补丁使 OpenSSH 软件保持最新,以降低攻击风险。

通过遵循这些最佳实践,您可以帮助确保 OpenSSH 连接的安全性和可靠性,并保护您的系统免受未经授权的访问和攻击。

结论

OpenSSH 是用于管理远程 Linux 服务器的强大且必不可少的工具。通过遵循本文中概述的步骤,您应该能够在您的 Linux 机器上安装和配置 OpenSSH,并使用它来安全地管理您的远程服务器。请记住,通过遵循最佳实践(例如禁用密码身份验证和使用公钥身份验证)来保持 OpenSSH 配置的安全。

更新于:2023年5月12日

915 次浏览

开启你的职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.