Linux系统本身并不直接内置SSH服务的核心实现,主流的Linux发行版通常会预装OpenSSH相关的软件包来提供SSH功能,不同发行版的默认配置存在一定差异。

主流Linux发行版的SSH预装情况
常见的Linux发行版对SSH的预装和默认启用策略如下:
- Ubuntu、Debian系列:默认预装
openssh-client(SSH客户端),部分版本默认安装openssh-server(SSH服务端),但没有默认开启服务 - CentOS、RHEL系列:默认预装
openssh-server和openssh-client,服务默认处于未启动状态 - Arch Linux:默认不预装任何OpenSSH相关包,需要用户手动安装
如何检查系统是否安装了SSH相关包
可以通过包管理工具查询系统是否已经安装了OpenSSH相关的软件包,不同发行版的查询命令如下:
Debian/Ubuntu系统
# 检查是否安装openssh-server dpkg -l | grep openssh-server # 检查是否安装openssh-client dpkg -l | grep openssh-client
CentOS/RHEL系统
# 检查是否安装openssh相关包 rpm -qa | grep openssh
Arch Linux系统
# 检查是否安装openssh pacman -Qs openssh
如何检查SSH服务是否正在运行
如果已经安装了openssh-server,还需要确认服务是否已经启动,不同初始化系统的检查命令不同:
systemd初始化系统(大部分现代发行版)
# 检查ssh服务状态 systemctl status sshd # 或者部分系统服务名为ssh systemctl status ssh
sysvinit初始化系统(较旧的发行版)
# 检查ssh服务状态 service ssh status
未安装SSH时的安装与启用方法
如果检查发现系统没有安装OpenSSH相关包,可以按照以下步骤安装并启用:
安装OpenSSH
Debian/Ubuntu系统安装命令:
# 更新软件源 sudo apt update # 安装服务端和客户端 sudo apt install openssh-server openssh-client -y
CentOS/RHEL系统安装命令:
# 安装openssh相关包 sudo yum install openssh-server openssh-client -y # 如果是CentOS 8及以上使用dnf sudo dnf install openssh-server openssh-client -y
Arch Linux系统安装命令:
# 安装openssh sudo pacman -S openssh
启动并设置开机自启SSH服务
systemd系统执行以下命令:
# 启动ssh服务 sudo systemctl start sshd # 设置开机自启 sudo systemctl enable sshd
sysvinit系统执行以下命令:
# 启动ssh服务 sudo service ssh start # 设置开机自启 sudo chkconfig ssh on
SSH基础配置说明
SSH服务端的配置文件默认路径为/etc/ssh/sshd_config,可以通过修改该文件调整SSH的相关参数,比如修改默认端口、禁止root用户登录等,修改完成后需要重启服务生效:
# 重启ssh服务 sudo systemctl restart sshd
常用的配置项说明:
| 配置项 | 说明 |
|---|---|
| Port 22 | SSH服务监听的端口,默认是22,可修改为其他端口提升安全性 |
| PermitRootLogin yes | 是否允许root用户通过SSH登录,建议设置为no提升安全性 |
| PasswordAuthentication yes | 是否允许密码认证,可设置为no仅使用密钥认证 |
总结
Linux系统本身不自带SSH服务,但是大部分主流发行版会预装OpenSSH相关的软件包,用户只需要确认安装情况并启动对应服务即可使用SSH功能。如果系统没有预装,也可以通过包管理工具快速安装配置,整体操作难度较低,是Linux远程管理的常用工具。