在CentOS系统里,如何通过rpm包手动安装SSH服务?

在CentOS系统中,通过RPM包管理方式安装和配置SSH(Secure Shell)服务是进行远程安全管理的基石,SSH协议通过加密网络通信,为系统管理员提供了一种安全的方式来登录并执行命令,有效防止了信息在传输过程中被窃听或篡改,本文将详细介绍在CentOS环境下如何检查、安装、配置并启动SSH服务,确保您能够安全、高效地管理您的服务器。

检查SSH服务是否已安装

在开始安装之前,首先需要确认系统中是否已经安装了OpenSSH服务器软件包,大多数CentOS默认安装会包含SSH客户端,但服务器端(openssh-server)可能需要手动安装,您可以通过以下几种方式进行检查:

  • 使用rpm命令查询:

    rpm -qa | grep openssh

    这个命令会列出所有已安装的、名称中包含“openssh”的软件包,请查找输出结果中是否有openssh-server-x.x.x这样的条目,如果存在,说明SSH服务已经安装。

  • 检查SSH服务状态:

    systemctl status sshd

    如果服务已安装并正在运行,此命令会显示active (running)状态,如果未安装,则会提示“Unit sshd.service could not be found”。

  • 检查SSH版本:

    ssh -V

    这个命令主要用于检查SSH客户端的版本,但它的存在也间接表明系统对SSH有基本支持。

如果确认系统未安装openssh-server,则可以进入下一步进行安装。

使用YUM/DNF安装SSH服务

在CentOS上,最推荐、最便捷的RPM安装方式是使用yum(CentOS 7及更早版本)或dnf(CentOS 8及更新版本)包管理器,它们能够自动处理软件包的依赖关系,确保安装过程顺利无误。

  • 对于CentOS 7:

    sudo yum install openssh-server
  • 对于CentOS 8/9/Stream:

    sudo dnf install openssh-server

执行命令后,系统会列出需要安装的软件包及其依赖项,提示您确认,输入y并回车,yum/dnf便会自动从官方仓库下载并安装所有必要的文件,这种在线安装方式是绝大多数场景下的首选。

手动使用RPM命令安装(离线场景)

在某些无法连接互联网的隔离环境中,您可能需要手动下载RPM包进行安装,这种方法需要您自行解决所有依赖关系,相对复杂。

  1. 下载RPM包: 您需要在一台可以联网的相同系统版本的CentOS机器上,或者从官方镜像站点下载openssh-server的RPM包及其所有依赖包(如openssl等)。
  2. 传输到目标服务器: 使用U盘、移动硬盘等方式将下载好的.rpm文件拷贝到目标CentOS服务器上。
  3. 执行安装命令:
    sudo rpm -ivh openssh-server-*.rpm
    • -i 表示安装。
    • -v 显示详细信息。
    • -h 显示安装进度条。

如果在安装过程中提示缺少依赖,您需要先手动安装这些依赖的RPM包,这个过程可能会非常繁琐,因此除非必要,否则强烈建议使用yum/dnf

配置SSH服务

安装完成后,SSH服务的默认配置通常可以满足基本需求,但出于安全考虑,对其进行定制化配置是管理员的必备技能,主配置文件位于/etc/ssh/sshd_config,在修改前,建议先备份原文件:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

使用文本编辑器(如vinano)打开配置文件:

sudo vi /etc/ssh/sshd_config

以下是一些关键配置项的说明和推荐设置:

配置项 默认值 推荐设置与说明
Port 22 22 建议修改为非标准端口(如2222),可以有效抵御自动化扫描和攻击。
PermitRootLogin yes yes 强烈建议改为no,禁止root用户直接登录,应使用普通用户登录后,通过susudo提权。
PasswordAuthentication yes yes 如果计划使用SSH密钥对登录,可以设置为no,禁用密码认证,安全性更高。
ListenAddress 0.0.0.0 0.0.0 可以设置为服务器的特定IP地址,限制SSH服务只监听在该IP上,增加一层访问控制。
AllowUsers (未设置) 可以设置此参数,只允许特定的用户(或用户组)登录,AllowUsers admin user1

修改完成后,保存并退出编辑器。

启动与管理SSH服务

配置更改后,需要启动SSH服务(如果尚未运行)并重新加载配置使其生效,在Systemd系统(CentOS 7+)中,使用systemctl命令进行管理。

  • 启动SSH服务:

    sudo systemctl start sshd
  • 设置开机自启:

    sudo systemctl enable sshd
  • 重启服务以应用新配置:

    sudo systemctl restart sshd
  • 查看服务状态:

    sudo systemctl status sshd

配置防火墙

如果服务器开启了防火墙(默认开启firewalld),必须允许SSH服务的端口通过,否则外部客户端将无法连接。

  • 允许默认SSH服务(端口22):

    sudo firewall-cmd --permanent --add-service=ssh
  • 如果修改了SSH端口(例如改为2222):

    sudo firewall-cmd --permanent --add-port=2222/tcp
  • 重新加载防火墙规则使配置生效:

    sudo firewall-cmd --reload

至此,您的CentOS服务器上的SSH服务已经安装、配置并运行起来了,您可以从任何SSH客户端(如Linux终端、Windows的PuTTY或Xshell)使用ssh username@server_ip命令(如果修改了端口,需使用-p参数指定)来安全地连接和管理您的服务器。


相关问答FAQs

问题1:我按照教程修改了SSH端口,但就是无法连接,可能是什么原因?

解答: 这是一个非常常见的问题,通常由以下几个原因导致:

  1. 防火墙未更新: 这是最可能的原因,您在sshd_config中修改了端口,但忘记在firewalld中开放新的TCP端口,请确保使用firewall-cmd --permanent --add-port=新端口号/tcp命令添加了新端口,并执行了firewall-cmd --reload
  2. SSH服务未重启: 修改sshd_config文件后,必须使用sudo systemctl restart sshd命令重启服务,新的配置才能生效。
  3. SELinux问题: 如果您的系统开启了SELinux,它可能会阻止SSH在非标准端口上监听,您需要使用semanage命令来允许SSH使用新端口,sudo semanage port -a -t ssh_port_t -p tcp 新端口号
  4. 客户端连接错误: 确保您在SSH客户端中使用了正确的端口号(例如ssh -p 新端口号 user@host)。

问题2:为什么要禁用root用户的SSH登录?这样做之后我该如何执行管理员操作?

解答: 禁止root用户通过SSH直接登录是一项重要的安全最佳实践,原因如下:

  • 减少攻击面: root是每个Linux系统都存在的默认超级用户账户,是暴力破解攻击的首要目标,禁用它可以直接堵上这个最大的漏洞。
  • 责任追溯: 如果多个管理员都使用root登录,系统日志中将很难区分是谁执行了某项关键操作,使用各自的普通用户登录,再通过sudo提权,可以清晰地记录每个管理员的操作行为。
  • 降低操作风险: 普通用户登录后,只有在必要时才使用sudo执行特权命令,可以有效避免因误操作而破坏整个系统。

执行管理员操作的正确方式是:

  1. 创建一个普通用户,例如admin
  2. 将该用户添加到wheel用户组(sudo的默认管理员组):sudo usermod -aG wheel admin
  3. 确保在/etc/sudoers文件中,wheel组被赋予了sudo权限(默认是启用的)。
  4. 之后,您就可以使用admin这个普通用户登录SSH,当需要执行管理员命令时,只需在命令前加上sudo,例如sudo yum update,然后输入admin用户的密码即可。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-11 11:40
下一篇 2025-10-11 11:42

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信