凌峰创科服务平台

Linux如何配置SSH服务器?

在Linux系统中配置SSH服务器是实现远程管理和服务访问的重要步骤,以下将详细介绍完整的配置过程,包括安装、配置、安全优化及服务管理等内容。

Linux如何配置SSH服务器?-图1
(图片来源网络,侵删)

安装SSH服务器

大多数Linux发行版默认未安装SSH服务器,需手动安装,以Ubuntu/Debian为例,使用以下命令:

sudo apt update
sudo apt install openssh-server

对于CentOS/RHEL系统,使用:

sudo yum install openssh-server

安装完成后,SSH服务会自动启动,可通过systemctl status sshd(CentOS/RHEL)或systemctl status ssh(Ubuntu/Debian)检查服务状态。

配置SSH服务

SSH的主配置文件位于/etc/ssh/sshd_config,使用sudo nano /etc/ssh/sshd_config编辑文件,关键配置项如下:

Linux如何配置SSH服务器?-图2
(图片来源网络,侵删)
配置项 默认值 建议修改值 说明
Port 22 自定义端口(如2222) 修改默认端口可降低被扫描攻击的风险
PermitRootLogin yes no 禁止root用户直接登录,提升安全性
PasswordAuthentication yes no 禁用密码登录,强制使用密钥认证(需先配置密钥)
PubkeyAuthentication yes yes 启用公钥认证
AllowUsers 允许的用户名 限制仅特定用户可登录,如AllowUsers user1 user2
MaxAuthTries 6 3 限制每连接最大认证尝试次数,防止暴力破解

修改后保存文件,执行sudo systemctl restart sshd(CentOS/RHEL)或sudo systemctl restart ssh(Ubuntu/Debian)重启服务。

生成SSH密钥对(可选)

为提升安全性,建议使用密钥认证替代密码,在客户端生成密钥对:

ssh-keygen -t rsa -b 4096

按提示生成公钥(~/.ssh/id_rsa.pub)和私钥(~/.ssh/id_rsa),将公钥上传至服务器:

ssh-copy-id username@server_ip

ssh-copy-id不可用,可通过以下方式手动添加:

Linux如何配置SSH服务器?-图3
(图片来源网络,侵删)
cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

防火墙与SELinux配置

确保防火墙允许SSH流量,以Ubuntu为例(使用ufw):

sudo ufw allow 2222/tcp  # 替换为自定义端口
sudo ufw enable

CentOS/RHEL(使用firewalld):

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

若开启SELinux(如CentOS),需执行:

sudo semanage port -a -t ssh_port_t -p tcp 2222

安全增强措施

  1. 禁用密码登录:确认PasswordAuthentication no已配置,并重启SSH服务。
  2. 定期更新:保持系统和SSH包最新,执行sudo apt upgradesudo yum update
  3. 日志监控:通过/var/log/auth.log(Ubuntu)或/var/log/secure(CentOS)监控登录尝试。
  4. 失败封禁:使用fail2ban工具自动封禁恶意IP,安装后配置/etc/fail2ban/jail.local

常见问题排查

  1. 连接超时或拒绝:检查防火墙规则、SSH服务状态及端口是否正确。
  2. 权限错误:确保服务器端~/.ssh目录权限为700,authorized_keys权限为600。

FAQs

Q1: 如何修改SSH默认端口后无法连接?
A: 可能原因包括防火墙未开放新端口、SELinux未识别新端口或配置文件语法错误,检查/etc/ssh/sshd_configPort值是否正确,执行sudo ss -tulnp | grep 新端口确认端口监听,并确保防火墙和SELinux允许该端口访问。

Q2: 忘记SSH服务器root密码如何重置?
A: 若能通过控制台登录,可执行sudo passwd root重置密码;若无法登录,需进入单用户模式(重启时按e编辑内核参数,将ro改为rw init=/sysroot/bin/sh,重启后执行chroot /sysroot修改密码)。

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