HCRM博客

如何安装和配置SSHD在CentOS系统上?

SSH在CentOS中的使用详解

SSH(Secure Shell)是一种加密的网络传输协议,主要用于远程登录和管理网络设备,与Telnet等传统远程登录方式相比,SSH提供了更强的安全性,通过加密技术保护数据传输的安全,本文将详细介绍如何在CentOS系统中安装、配置和使用SSH服务,并探讨其高级功能和应用场景。

如何安装和配置SSHD在CentOS系统上?-图1
(图片来源网络,侵权删除)

一、SSH

SSH是由IETF制定的建立在应用层和传输层基础上的安全协议,旨在为远程登录会话和其他网络服务提供安全保障,SSH通过加密所有传输的数据,防止DNS欺骗和IP欺骗,同时压缩数据以加快传输速度。

二、SSH服务的安装与启动

1. 检查是否已安装OpenSSH

大多数CentOS系统默认安装了OpenSSH软件包,可以通过以下命令检查:

rpm qa | grep E "openssh"

如果未安装,可以使用以下命令进行安装:

yum install opensshserver y

2. 启动SSH服务

安装完成后,启动SSH服务:

如何安装和配置SSHD在CentOS系统上?-图2
(图片来源网络,侵权删除)
systemctl start sshd

设置开机自启:

systemctl enable sshd

3. 防火墙配置

确保防火墙允许SSH流量通过:

firewallcmd permanent addservice=ssh
firewallcmd reload

三、建立SSH连接

1. 基于口令的安全验证

用户只需知道自己的账号和密码即可登录远程主机。

ssh username@server_ip

此方法简单但存在密码泄露风险。

如何安装和配置SSHD在CentOS系统上?-图3
(图片来源网络,侵权删除)

2. 基于密钥的安全验证

为了提高安全性,推荐使用基于密钥的验证方式,步骤如下:

1、在客户端生成密钥对:

   sshkeygen

按提示操作,通常直接回车使用默认设置。

2、将公钥复制到服务器:

   sshcopyid username@server_ip

输入密码确认后,公钥将自动添加到服务器的~/.ssh/authorized_keys文件中。

3、使用私钥登录:

   ssh username@server_ip

首次登录会提示是否继续连接,输入yes后即可免密登录。

四、SSH配置文件详解

SSH的主配置文件位于/etc/ssh/SSHD_config,以下是一些关键参数及其说明:

参数 说明
Port 指定SSH监听的端口号,默认为22,建议修改为不常用端口以减少被攻击的风险。
ListenAddress 指定SSH服务绑定的地址,0.0.0.0表示监听所有网络接口。
Protocol 指定SSH协议版本,推荐使用2以提高安全性。
PermitRootLogin 是否允许root用户登录,建议设置为no以提高安全性。
PasswordAuthentication 是否启用密码验证,设为yes时需配合PubkeyAuthentication使用。
AuthorizedKeysFile 指定存储公钥的文件路径,默认为.ssh/authorized_keys
AllowUsers 允许登录的用户名列表,多个用户用空格分隔。
DenyUsers 禁止登录的用户名列表,多个用户用空格分隔。
MaxAuthTries 最大认证失败次数,超过次数后禁止登录。

示例配置文件片段:

Port 2222
ListenAddress 0.0.0.0
Protocol 2
PermitRootLogin no
PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
AllowUsers username1 username2
DenyUsers invaliduser
MaxAuthTries 3

保存文件后,重启SSH服务使配置生效:

systemctl restart sshd

五、修改SSH默认端口

出于安全考虑,建议修改SSH的默认端口22,编辑/etc/ssh/sshd_config文件,找到Port参数并修改为其他端口号(如2222),然后重启SSH服务:

systemctl restart sshd

确保防火墙开放新的端口:

firewallcmd permanent addport=2222/tcp
firewallcmd reload

六、限制特定用户访问

1. 允许特定用户访问

/etc/ssh/sshd_config文件中,使用AllowUsers参数指定允许登录的用户:

AllowUsers user1 user2

多个用户之间用空格分隔。

2. 禁止特定用户访问

使用DenyUsers参数指定禁止登录的用户:

DenyUsers user3 user4

多个用户之间用空格分隔。

七、SSH文件传输

除了远程登录外,SSH还支持安全的文件传输,主要通过scp(Secure Copy)和rsync命令实现。

1. 使用scp命令传输文件

基本语法:

scp [选项] 源文件 目标地址

示例:将本地文件example.txt复制到远程服务器的/home/user/目录:

scp example.txt username@server_ip:/home/user/

反向操作(从服务器下载文件):

scp username@server_ip:/home/user/example.txt /local/path/

2. 使用rsync同步文件

rsync是一个快速且通用的文件同步工具,适用于备份和镜像场景,基本语法:

rsync [选项] 源目录 目标地址

示例:将本地目录/home/user/data/同步到远程服务器:

rsync avz /home/user/data/ username@server_ip:/remote/backup/

各参数说明:

a:归档模式,递归复制并保持文件属性。

v:详细模式,显示传输过程。

z:压缩文件数据传输。

SSH作为一款强大的远程登录和管理工具,不仅提供了基本的远程控制功能,还通过丰富的配置选项满足了不同场景下的安全需求,在CentOS系统中,合理配置和使用SSH可以有效提升系统的安全性和管理效率,本文介绍了SSH的基本概念、安装与启动、连接方式、配置文件详解以及高级应用,希望能帮助读者更好地理解和使用SSH。

九、常见问题解答(FAQs)

Q1: 如何更改SSH的默认端口数?

A1: 编辑/etc/ssh/sshd_config文件,找到Port参数并修改为其他端口号(如2222),然后重启SSH服务,确保防火墙开放新的端口。

Q2: 如何只允许特定用户通过SSH访问服务器?

A2: 在/etc/ssh/sshd_config文件中,使用AllowUsers参数指定允许登录的用户,或使用DenyUsers参数指定禁止登录的用户,多个用户之间用空格分隔。

AllowUsers user1 user2
DenyUsers user3 user4

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/16149.html

分享:
扫描分享到社交APP
上一篇
下一篇