Linux系统如何搭建SSH远程连接服务?

在Linux系统中搭建SSH(Secure Shell)服务是实现远程安全管理的核心操作,SSH通过加密传输和身份验证机制,确保用户在远程登录、文件传输等操作中的数据安全,本文将以主流Linux发行版(如Ubuntu/Debian和CentOS/RHEL)为例,详细讲解SSH服务的完整搭建流程,包括安装配置、启动、防火墙设置及客户端连接测试,并附上安全加固建议。

linux系统如何搭建ssh

SSH服务安装

不同Linux发行版的软件包管理工具不同,需根据系统选择对应的安装命令,以下是常见发行版的安装步骤:

Ubuntu/Debian系统

Ubuntu/Debian系列使用apt包管理器,执行以下命令安装SSH服务(默认为OpenSSH):

sudo apt update  # 更新软件包列表
sudo apt install openssh-server  # 安装OpenSSH服务器

安装完成后,可通过systemctl status ssh查看服务状态(若未启动,需手动执行sudo systemctl start ssh)。

CentOS/RHEL系统

CentOS/RHEL系列使用yumdnf包管理器(CentOS 7及以后版本推荐dnf):

sudo yum install openssh-server  # CentOS 7及以前版本
# 或
sudo dnf install openssh-server  # CentOS 8及以后版本

安装后同样可通过systemctl status sshd查看服务状态(CentOS系列服务名为sshd)。

不同发行版安装命令对比

发行版系列 包管理器 安装命令 服务名称
Ubuntu/Debian apt sudo apt install openssh-server ssh
CentOS/RHEL yum/dnf sudo yum/dnf install openssh-server sshd

SSH服务配置

SSH服务的核心配置文件为/etc/ssh/sshd_config(Ubuntu/Debian)或/etc/ssh/sshd_config(CentOS/RHEL),通过修改该文件可实现端口自定义、登录限制等功能,配置前建议备份原文件:

linux系统如何搭建ssh

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

关键配置项说明

配置项 默认值 说明 推荐设置
Port 22 SSH服务监听端口 修改为非默认端口(如2222)
PermitRootLogin yes 是否允许root用户直接登录 no(禁止root直接登录,提升安全性)
PasswordAuthentication yes 是否允许密码认证 no(仅密钥认证,更安全)
PubkeyAuthentication yes 是否允许公钥认证 yes(结合密码认证或单独使用)
AllowUsers 允许登录的用户列表(多个用户用空格分隔) AllowUsers user1 user2
MaxAuthTries 6 最大认证尝试次数 3(防止暴力破解)

配置示例

使用vimnano编辑配置文件:

sudo vim /etc/ssh/sshd_config
Port 2222          # 修改端口
PermitRootLogin no  # 禁止root直接登录
PasswordAuthentication no  # 禁止密码认证,仅用密钥
AllowUsers admin test  # 仅允许admin和test用户登录
MaxAuthTries 3      # 最大认证尝试3次

保存后执行sudo systemctl restart ssh(Ubuntu)或sudo systemctl restart sshd(CentOS)使配置生效。

防火墙设置

SSH服务默认端口(22)或自定义端口需通过防火墙开放,否则客户端无法连接,不同发行版防火墙工具不同:

Ubuntu/Debian(UFW防火墙)

sudo ufw allow 2222/tcp  # 开放自定义端口2222
sudo ufw enable          # 启用防火墙(若未启用)

CentOS/RHEL(Firewalld防火墙)

sudo firewall-cmd --permanent --add-port=2222/tcp  # 永久开放端口2222
sudo firewall-cmd --reload                         # 重新加载防火墙规则

防火墙命令对比

发行版系列 防火墙工具 开放端口命令 启用防火墙命令
Ubuntu/Debian UFW sudo ufw allow 端口/tcp sudo ufw enable
CentOS/RHEL Firewalld sudo firewall-cmd --permanent --add-port=端口/tcp sudo systemctl start firewalld

SSH客户端连接测试

基本连接

使用ssh命令连接服务器,格式为ssh -p 端口 用户名@服务器IP

ssh -p 2222 admin@192.168.1.100

首次连接会提示“Are you sure you want to continue connecting? (yes/no)”,输入yes即可。

密钥认证配置(推荐)

为提升安全性,建议使用SSH密钥对替代密码认证:

linux系统如何搭建ssh

  • 生成密钥对(在客户端执行):
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

    按提示保存密钥(默认~/.ssh/id_rsa),无需设置密码或直接设置密码保护私钥。

  • 上传公钥到服务器
    ssh-copy-id -p 2222 admin@192.168.1.100

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

  • 测试免密登录
    ssh -p 2222 admin@192.168.1.100

    若无需输入密码即可登录,说明密钥认证配置成功。

安全加固建议

  1. 修改默认端口:避免使用默认端口22,降低自动化攻击风险。
  2. 禁用root直接登录:通过普通用户登录后切换至root(sudo su -),减少权限泄露风险。
  3. 使用密钥认证:关闭密码认证(PasswordAuthentication no),强制使用密钥对。
  4. 限制登录用户:通过AllowUsersDenyUsers配置项,仅允许特定用户登录。
  5. 定期更新SSH软件包:执行sudo apt upgrade(Ubuntu)或sudo yum update(CentOS),修复安全漏洞。
  6. 配置失败登录限制:通过MaxAuthTries限制认证次数,或使用fail2ban工具封禁恶意IP。

相关问答FAQs

Q1: SSH连接时提示“Connection timed out”怎么办?
A: 可能原因及解决方法:
(1)SSH服务未启动:执行sudo systemctl start ssh(Ubuntu)或sudo systemctl start sshd(CentOS);
(2)防火墙拦截:检查防火墙规则,确保SSH端口已开放(如sudo ufw statussudo firewall-cmd --list-ports);
(3)服务器IP或端口错误:确认客户端输入的IP地址和端口与服务器配置一致;
(4)网络问题:使用ping命令测试服务器网络连通性(如ping 192.168.1.100)。

Q2: 如何修改SSH默认端口并确保连接正常?
A: 修改步骤如下:
(1)编辑SSH配置文件:sudo vim /etc/ssh/sshd_config,将Port 22改为自定义端口(如Port 2222);
(2)开放防火墙端口:Ubuntu执行sudo ufw allow 2222/tcp,CentOS执行sudo firewall-cmd --permanent --add-port=2222/tcp && sudo firewall-cmd --reload
(3)重启SSH服务:sudo systemctl restart ssh(Ubuntu)或sudo systemctl restart sshd(CentOS);
(4)客户端连接测试:使用ssh -p 2222 username@IP连接,若成功则说明修改成功。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/31126.html

(0)
酷番叔酷番叔
上一篇 2025年9月27日 05:26
下一篇 2025年9月27日 06:07

相关推荐

  • 在Linux操作系统中,如何卸载通过make命令安装的程序?

    在Linux系统中,通过make安装的程序通常是将源码编译后直接安装到系统目录(如/usr/local、/opt等),与通过包管理器(如apt、yum)安装的程序不同,这类手动编译安装的程序没有统一的卸载入口,卸载时需要根据安装方式和程序特性选择合适的方法,以下是详细的卸载步骤和注意事项,优先尝试make un……

    2025年8月24日
    5300
  • 如何安装ksh?

    KornShell (ksh) 是 Linux 环境中功能强大的 Unix shell,由 David Korn 开发,兼具 Bourne shell (sh) 的兼容性和 C shell (csh) 的交互特性(如命令行编辑),以下是 Linux 用户使用 ksh 的完整指南:不同 Linux 发行版的安装命……

    2025年7月26日
    4900
  • Linux如何配置DHCP服务器?

    在Linux系统中配置DHCP服务器(Dynamic Host Configuration Protocol,动态主机配置协议)可以为局域网中的自动分配IP地址、子网掩码、网关、DNS服务器等网络参数,简化网络管理,本文将以最常用的ISC DHCP Server为例,详细讲解在Linux系统中配置DHCP服务器……

    2025年9月29日
    3300
  • linux打开网页如何

    Linux 中,可通过浏览器如 Firefox、Chrome 等打开网页,也可使用命令行工具

    2025年8月13日
    6000
  • 如何解析到linux 服务器

    到 Linux 服务器可通过多种方式,如使用 SSH 客户端工具,输入服务器 IP

    2025年8月19日
    5900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信