当前位置:首页 > 系统教程 > 正文

Linux SSH完全指南(从入门到安全配置)

Linux SSH完全指南(从入门到安全配置)

涵盖CentOS/RHEL与Ubuntu/Debian的SSH服务管理

Linux SSH完全指南(从入门到安全配置) SSH教程  SSH配置 CentOS SSH Ubuntu 第1张

SSH(Secure Shell) 是Linux服务器远程管理的核心工具,它加密所有通信,防止中间人攻击和密码嗅探。无论你是新手还是老手,掌握SSH教程都是必备技能。本文将详细讲解在两大主流Linux发行版家族——CentOS/RHELUbuntu/Debian 上配置和管理SSH服务的完整步骤,并加入安全加固建议,助你轻松构建安全的远程连接环境。

1. 什么是SSH?

SSH是一种网络协议,用于在不安全的网络上安全地运行网络服务。最常见的用途是远程登录到Linux服务器并执行命令。默认端口是22。通过Linux SSH配置,我们可以控制访问权限、加密方式等。

2. 安装SSH服务

大多数Linux发行版默认已安装OpenSSH服务器。若未安装,请根据系统使用以下命令:

CentOS/RHEL 系列:sudo yum install openssh-server -ysudo dnf install openssh-server -y(CentOS 8+)

Ubuntu/Debian 系列:sudo apt update && sudo apt install openssh-server -y

3. 启动与启用SSH服务

安装后,启动服务并设置开机自启:

CentOS/RHELsudo systemctl start sshd && sudo systemctl enable sshd

Ubuntu/Debiansudo systemctl start ssh && sudo systemctl enable ssh(注意服务名可能为ssh)

检查状态:sudo systemctl status sshdsudo systemctl status ssh

4. 基本SSH配置(文件位置:/etc/ssh/sshd_config)

修改配置文件前建议备份:sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

  • 更改端口(增加安全性):找到 #Port 22 改为 Port 2222(自定义高位端口)。
  • 禁止root直接登录:找到 #PermitRootLogin yes 改为 PermitRootLogin no
  • 限制用户登录:添加 AllowUsers user1 user2 仅允许指定用户。
  • 启用密钥认证:确保 PubkeyAuthentication yes 未被注释。
  • 禁用密码认证(使用密钥后)PasswordAuthentication no

修改后重启服务生效:sudo systemctl restart sshd(或ssh)。

5. 从客户端连接SSH

基本命令:ssh 用户名@服务器IP -p 端口。例如:ssh admin@192.168.1.100 -p 2222

6. 配置SSH密钥认证(更安全)

在客户端生成密钥对:ssh-keygen -t rsa -b 4096。然后将公钥复制到服务器:ssh-copy-id 用户名@服务器IP -p 端口。之后即可免密码登录。

7. SSH安全加固建议

  • 使用非默认端口(如2222)减少扫描。
  • 禁用root登录,使用普通用户然后sudo。
  • 仅允许密钥认证,关闭密码认证。
  • 使用Fail2ban等工具防止暴力破解。
  • 定期更新OpenSSH版本。
  • 配置防火墙只允许特定IP访问SSH端口。

8. 常见问题

Q: 连接被拒绝? A: 检查服务是否运行,防火墙是否放行端口(sudo firewall-cmd --add-port=2222/tcp --permanent for CentOS;sudo ufw allow 2222/tcp for Ubuntu)。

Q: 密钥登录失败? A: 检查.ssh目录权限(应为700)和authorized_keys权限(应为600),以及SELinux(CentOS需restorecon -R -v /home/用户名/.ssh)。

通过以上步骤,你已经掌握了CentOS SSHUbuntu SSH的基本配置与安全加固,可以自信地管理你的Linux服务器了。