HCRM博客

如何在CentOS系统上配置SSH服务?

CentOS 配置 SSH

一、SSH简介

Secure Shell(简称SSH)是一种加密的网络协议,用于在不安全的网络中安全地操作远程计算机,它提供了数据加密、身份验证和数据传输的功能,确保通信的安全性和完整性,SSH常用于远程登录、远程命令执行和文件传输等场景。

如何在CentOS系统上配置SSH服务?-图1
(图片来源网络,侵权删除)

二、安装OpenSSH服务

1. 查看是否已安装

通过以下命令检查CentOS系统中是否已经安装了OpenSSH服务:

rpm qa | grep openssh

如果系统显示类似以下内容,则表示OpenSSH已经安装:

openssh7.4p111.el7.x86_64
opensshserver7.4p111.el7.x86_64
opensshclients7.4p111.el7.x86_64

2. 安装OpenSSH

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

yum install y opensshserver

安装完成后,可以通过以下命令启动SSH服务:

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

并设置开机自启动:

systemctl enable sshd

三、配置OpenSSH服务

1. 编辑配置文件

OpenSSH的主配置文件是/etc/ssh/sshd_config,使用vim或其他文本编辑器打开该文件:

vim /etc/ssh/sshd_config

2. 修改主要配置项

在配置文件中,可以设置多个选项来优化SSH服务

监听端口: 默认为22,可以根据需要修改,将端口改为2222:

如何在CentOS系统上配置SSH服务?-图3
(图片来源网络,侵权删除)
    Port 2222

禁止root用户登录: 为了增强安全性,通常禁用root用户远程登录,找到并修改以下配置:

    PermitRootLogin no

允许空密码登录: 禁用空密码登录:

    PermitEmptyPasswords no

启用密码验证和公钥验证: 确保这两种验证方式都启用:

    PasswordAuthentication yes
    PubkeyAuthentication yes

指定公钥库文件: 设置存储公钥的文件路径:

    AuthorizedKeysFile .ssh/authorized_keys

其他安全设置: 如限制最大重试次数、登录验证时间等:

    MaxAuthTries 3
    LoginGraceTime 120

完成配置后,保存并退出编辑器,然后重新启动SSH服务以使配置生效:

systemctl restart sshd

四、防火墙配置

确保防火墙允许SSH流量通过,可以使用以下命令开启22端口(或自定义端口):

firewallcmd zone=public addport=2222/tcp permanent
firewallcmd reload

五、生成密钥对并进行无密码登录配置

为了实现无密码登录,需要生成密钥对,并将公钥复制到目标服务器。

1. 生成密钥对

在本地计算机上生成密钥对:

sshkeygen t rsa b 2048

按提示操作,通常会将密钥保存到家目录下的.ssh目录中。

2. 复制公钥到远程服务器

使用sshcopyid命令将公钥复制到远程服务器:

sshcopyid i ~/.ssh/id_rsa.pub user@remote_ip

输入远程服务器的用户密码后,公钥会自动添加到远程用户的~/.ssh/authorized_keys文件中。

3. 手动复制公钥

也可以手动复制公钥文件:

scp ~/.ssh/id_rsa.pub user@remote_ip:~/.ssh/authorized_keys

确保目标目录权限正确:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

六、常见配置示例与表格说明

以下是一些常见的SSH配置项及其说明:

配置项 说明
Port 指定SSH服务的监听端口,默认为22。
PermitRootLogin 禁止或允许root用户登录,可选值为yesno
PasswordAuthentication 启用或禁用密码验证,可选值为yesno
PubkeyAuthentication 启用或禁用公钥验证,可选值为yesno
AuthorizedKeysFile 指定存储公钥的文件路径,默认为~/.ssh/authorized_keys
AllowUsers 限定允许登录的用户列表,格式为user1 user2
DenyUsers 限定禁止登录的用户列表,格式为user1 user2
MaxAuthTries 设置最大认证失败次数,超过次数后禁止登录。
LoginGraceTime 设置登录验证时间,单位为秒。
UseDNS 是否启用DNS反向解析,建议设置为no以提高性能。
ListenAddress 绑定的地址,默认为0.0.0.0表示监听所有地址。
Protocol 使用的SSH协议版本,推荐使用版本2。

常见问题FAQs

1、如何更改SSH端口号?

编辑/etc/ssh/sshd_config文件,找到并修改Port项,将端口改为2222:

     Port 2222

保存后重新启动SSH服务:

     systemctl restart sshd

确保防火墙允许新端口通过:

     firewallcmd zone=public addport=2222/tcp permanent
     firewallcmd reload

2、如何禁用root用户远程登录?

编辑/etc/ssh/sshd_config文件,找到并修改PermitRootLogin项:

     PermitRootLogin no

保存后重新启动SSH服务:

     systemctl restart sshd

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

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