如何在Linux系统中开启SSH远程登录服务?

一、基础概念与环境准备

Secure Shell(SSH)是一种加密网络协议,用于安全地在不安全网络中进行远程登录和执行命令。Linux系统通常使用OpenSSH作为其默认的SSH实现。

OpenSSH客户端:大多数发行版默认已安装,允许用户通过ssh命令连接到其他主机。OpenSSH服务端:即openssh-server包,提供sshd守护进程,负责监听并处理来自客户端的连接请求。

在开始配置前,请确认您的Linux发行版类型,例如:

类别常见发行版包管理器Debian系Ubuntu, Debian, Kali LinuxaptRHEL系CentOS, RHEL, Rocky Linuxyum / dnfArch系Arch Linux, Manjaropacman

二、安装OpenSSH服务器组件

根据不同的Linux发行版,安装命令略有不同。以下是几个主流系统的安装指令:

# Ubuntu/Debian

sudo apt update

sudo apt install openssh-server

# CentOS/RHEL

sudo yum install openssh-server

# Arch Linux

sudo pacman -S openssh

安装完成后,系统会自动创建一个名为sshd的服务单元,并生成必要的密钥文件。

三、配置SSH服务

SSH的主要配置文件位于/etc/ssh/sshd_config。以下是一些常见的配置项及其建议值:

Port 22

PermitRootLogin no

PasswordAuthentication yes

ChallengeResponseAuthentication no

UsePAM yes

X11Forwarding yes

PrintMotd no

AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

Port:修改默认端口可提高安全性,如改为2222。PermitRootLogin:禁用root直接登录以提升安全性。PasswordAuthentication:若使用密钥认证,建议设为no。

四、启动并启用sshd服务

使用systemd管理系统启动并设置开机自启:

sudo systemctl start sshd

sudo systemctl enable sshd

检查服务状态是否正常运行:

sudo systemctl status sshd

五、配置防火墙规则

确保系统防火墙允许SSH流量通过。以下是几种常见系统的配置方式:

# Ubuntu UFW

sudo ufw allow OpenSSH

sudo ufw enable

# CentOS firewalld

sudo firewall-cmd --permanent --add-service=ssh

sudo firewall-cmd --reload

# iptables(传统)

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

sudo iptables-save > /etc/iptables/rules.v4

六、测试连接与排错流程图

graph TD

A[本地终端] --> B{能否ping通目标IP?}

B -->|否| C[检查网络连接]

B -->|是| D{能否telnet目标IP 22端口?}

D -->|否| E[检查防火墙规则]

D -->|是| F[尝试SSH连接]

F --> G{连接失败?}

G -->|是| H[查看/var/log/secure日志]

G -->|否| I[成功连接]

七、高级配置与安全加固

为了进一步增强安全性,可以考虑以下措施:

使用SSH密钥认证代替密码登录限制允许登录的用户列表:AllowUsers user1 user2设置登录失败次数限制(结合fail2ban)关闭不必要的选项如X11转发等

友情链接: