SSH服务概述
SSH(Secure Shell)是一种网络协议,用于安全地在不安全的网络上执行命令和管理服务器,Alma Linux,作为CentOS的一个分支,继续支持SSH作为远程管理和安全通信的重要工具。
准备工作
在进行SSH服务的配置之前,确保已经安装了SSH服务器软件包,可以通过以下命令安装:
sudo dnf install opensshserver
安装完成后,SSH服务默认监听端口为22。
配置文件解析
SSH的主要配置文件位于/etc/ssh/sshd_config
,以下是一些常见配置项及其含义:
配置项 | 描述 |
Port | 指定SSH服务器监听的端口号 |
ListenAddress | 指定SSH服务器监听的IP地址 |
PermitRootLogin | 允许root用户通过SSH登录(yes/no) |
PasswordAuthentication | 是否允许密码认证(yes/no) |
PubkeyAuthentication | 是否允许公钥认证(yes/no) |
AuthorizedKeysFile | 存储用户公钥的文件路径 |
AllowUsers | 允许登录的用户列表 |
AllowGroups | 允许登录的用户组列表 |
DenyUsers | 拒绝登录的用户列表 |
DenyGroups | 拒绝登录的用户组列表 |
基本配置步骤
1. 修改SSH端口
为了避免默认端口的攻击,建议更改SSH服务的默认端口,编辑sshd_config
文件,将Port
改为其他值,例如2222:
sudo vi /etc/ssh/sshd_config 找到 Port 22 并修改为 Port 2222
2. 禁止root登录
出于安全考虑,禁止root用户直接通过SSH登录是一个好习惯,设置PermitRootLogin
为no
:
sudo vi /etc/ssh/sshd_config 找到 PermitRootLogin yes 并修改为 PermitRootLogin no
3. 启用公钥认证
公钥认证比密码认证更安全,确保PubkeyAuthentication
设置为yes
:
sudo vi /etc/ssh/sshd_config 确保 PubkeyAuthentication yes
4. 重启SSH服务
完成上述更改后,需要重启SSH服务以使配置生效:
sudo systemctl restart sshd
高级配置选项
使用防火墙限制访问
如果系统中有防火墙(如firewalld),需要确保SSH端口是开放的:
sudo firewallcmd addport=2222/tcp permanent sudo firewallcmd reload
生成SSH密钥对
对于公钥认证,需要在客户端生成SSH密钥对,并将公钥复制到服务器上的~/.ssh/authorized_keys
文件中,以下是在客户端生成密钥对的命令:
sshkeygen t rsa
使用sshcopyid
命令将公钥复制到服务器:
sshcopyid i ~/.ssh/id_rsa.pub user@your_server_ip
相关问答FAQs
Q1: 如何允许特定用户通过SSH登录?
A1: 可以在sshd_config
文件中使用AllowUsers
配置项来指定允许登录的用户列表。
AllowUsers alice bob
这将只允许用户alice和bob通过SSH登录。
Q2: 如果忘记了SSH密码,如何重置?
A2: 如果SSH配置为允许密码认证,并且你有root权限,可以通过以下步骤重置用户密码:
1、使用root账户登录到服务器。
2、使用passwd
命令重置用户密码:
passwd user_name
如果SSH配置为禁止密码认证,只能通过其他方式(如控制台或IPMI)重置密码。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/539992.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复