ssh服务器安装需要哪些必备包?,安装依赖怎么解决?

在绝大多数Linux服务器上,SSH服务需要的核心包就是openssh-server,同时建议安装openssh-client用于密钥管理;具体安装命令根据系统版本选择apt或yum/dnf。

Ubuntu与CentOS的ssh服务器安装包对比

远程登录服务器时,SSH协议是最常用的通道,不同系统虽然都依赖openssh-server这个主包,但安装命令和额外依赖存在明显差异,以最常见的两种发行版为例。

配置第一个服务SSH
加载中
配置第一个服务SSH

Ubuntu/Debian系统安装命令

Ubuntu服务器默认可能未安装SSH服务,需要手动操作,执行以下命令前,先更新软件源缓存。

sudo apt update
sudo apt install openssh-server

安装完后,系统会自动生成sshd服务,并创建/etc/ssh/sshd_config配置文件,这个包主要包含sshd服务端和运行时依赖,比如libssl库和openssh-sftp-server,多数情况下,完整安装还会自动拉起host key生成工具,不需要手动干预。

CentOS/RHEL系统的安装包差异

CentOS 7及更低版本用yum,CentOS 8以上推荐dnf,核心包名称和Ubuntu一致,但依赖的库有所区别。

# CentOS 7/RHEL 7
sudo yum install openssh-server
# CentOS Stream / RHEL 9
sudo dnf install openssh-server

值得注意的是,CentOS默认已经预装了openssh-server,但有些精简版镜像可能只保留了openssh-clients,检查是否已安装,可以用rpm命令:

rpm -qa | grep openssh

输出中应当同时包含openssh-server和openssh-client,如果仅有client,则还需单独安装server包。

最小化系统需要额外补装的包

在容器或最小化安装的系统中,即使装好了openssh-server,也常因缺少hostname、passwd或net-tools导致服务启动异常或无法确定IP,行业共识认为,这些基础工具属于SSH正常运行的必要条件,建议在最简环境执行:

sudo apt install -y hostname net-tools iproute2  # Ubuntu最小版
sudo yum install -y hostname net-tools            # CentOS最小版

ssh服务器安装包下载时容易遗漏的依赖项

从软件源安装一般能自动解决依赖,但有两个场景容易出问题:离线安装和源码编译。

ssh服务器安装需要哪些必备包?,安装依赖怎么解决?

离线环境下的依赖包组合

在没有外网的服务器上,很多人只拷贝了openssh-server的rpm或deb包,结果安装时提示依赖缺失,常见缺失项是openssl-libs和zlib,针对CentOS系统,可用createrepo工具将多个rpm包做成临时本地源,再执行yum安装,Ubuntu则建议下载全部依赖的deb包:

sudo apt install -y --download-only openssh-server

执行后,缓存目录下的deb文件需要一并拷贝到目标机器,精简文件时不要只拿主包,/var/cache/apt/archives中的libssl、libwrap等.gz包也要保留。

编译安装时需要的额外工具

如果需要从源码安装新版OpenSSH,依赖要求更严格,除了编译器gcc和make,还必须安装zlib-devel、openssl-devel和pam-devel,缺少这些包,configure阶段就会报错,详细依赖列表在官方源码包中的README文件中,实际操作时可用一句命令准备:

sudo apt install -y build-essential zlib1g-dev libssl-dev libpam0g-dev  # Debian/Ubuntu
sudo yum install -y gcc make zlib-devel openssl-devel pam-devel          # CentOS

安装完成后如何验证ssh服务正常启动

安装包不是装完就结束,必须确认服务已经运行并监听在22端口,执行下面几步,能快速定位绝大多数问题。

检查服务状态与开机自启

使用systemd初始化系统的Linux发行版,通杀以下命令:

sudo systemctl status sshd    # Ubuntu下也可写成 ssh
sudo systemctl enable sshd    # 设置开机自启
sudo systemctl restart sshd   # 修改配置后重启

如果status显示“Active: active (running)”则说明服务已正常,若显示failed,需要查看日志。

验证端口监听情况

服务正常运行后,22端口应当处于监听状态,使用ss命令或netstat查看:

ss -tlnp | grep :22

如果没有任何输出,先确认服务启动,再检查防火墙设置,防火墙往往才是连不上的根源。

安装好的ssh服务器还需要哪些安全增强包

ssh服务器安装需要哪些必备包?,安装依赖怎么解决?

一旦sshd服务开放到公网,各种扫描流量就会接踵而至,与单纯安装核心包相比,以下是更推荐的安全配置组合。

管理用户和密钥认证相关组件

密钥认证比密码登录安全得多,客户端生成密钥对需要的是openssh-client包,这个包在多数发行版中也被称为ssh-import-id,在服务端,则需要确认~/.ssh目录权限正确:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

这些操作不需要额外安装软件包,但很多新手误以为需要安装某个“密钥工具”,实际上密钥生成和认证功能已整合在openssh系列包内。

自动屏蔽暴力破解的辅助包

业内专家指出,单纯靠SSH自身的配置还不够,安装fail2ban可以动态拦截多次登录失败的IP,这款工具的包名在各大软件源中完全一致,直接安装即可:

sudo apt install fail2ban   # Ubuntu
sudo yum install fail2ban   # CentOS

安装后需打开/etc/fail2ban/jail.local,将enabled设为true,并指定sshd服务,如果使用了云服务器,建议同时开启防火墙服务,如Ubuntu的ufw或CentOS的firewalld,只放行22端口来源IP。

日志与监控组件并非必须

有些教程会建议安装sar或auditd查看SSH登录历史,但这只是运维辅助手段,不影响服务本身运行,资源紧张的服务器不必安装,登录日志可以通过journalctl或/var/log/auth.log直接获取。

ssh服务器安装后无法连接的排查步骤

安装完openssh-server,但远程工具始终超时,这种情况很常见,不要急着卸载重装,下面几步按顺序排查。

从客户端收集详细日志

在本地电脑执行ssh -v,输出中会显示协商到哪一步被拒绝:

ssh -v root@服务器IP

如果卡在“Connect timeout”,大概率是网络不通或防火墙拦截,如果收到“Connection refused”,则服务端sshd并没有监听。

检查服务端防火墙与SELinux

大多数连接问题源于防火墙策略,Ubuntu上先查ufw状态:

ssh服务器安装需要哪些必备包?,安装依赖怎么解决?

sudo ufw status

若输出显示22/tcp被阻止,执行sudo ufw allow 22/tcp,CentOS 7以上需检查firewalld:

sudo firewall-cmd --list-all
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

CentOS系统默认启用SELinux,需要确认ssh_sysadm_connect相关布尔值是否打开,临时可执行setsebool -P ssh_sysadm_connect on,但生产环境最好针对端口和进程做精细配置。

确认sshd配置文件语法

修改过/etc/ssh/sshd_config后,重启前先测试语法:

sudo sshd -t

任何输出都会提示你的错误,常见问题是PermitRootLogin设置不当,导致root无法登录,普通用户却能登录,注意该参数可取值包括prohibit-password、yes、no,多数第三方工具要求设为prohibit-password以允许密钥登录。

ssh服务器安装包常见问题解答

围绕安装包本身,有几个问题被反复提及。

是否只需要安装openssh-server一个包?

实际使用中建议同时安装openssh-client,因为scp、ssh-keygen等工具都由该包提供,只装server也能启动sshd,但不能在本机生成密钥对或执行scp上传操作,若客户端也有,可用scp ~/.ssh/id_rsa.pub user@server:~/.ssh/authorized_keys直接上传公钥。

云主机镜像自带的openssh版本需要升级吗?

云厂商提供的公共镜像一般已经预装openssh-server,但版本可能较旧,由于SSH协议兼容性极强,只要没有高危漏洞,不建议频繁升级,如果需要确认当前版本,执行ssh -V,若担心安全,重点应放在禁用密码登录和禁用root直接登录上,而不是追求新版本。

安装后如何调整连接超时时间?

有些服务器网络较慢,连接会卡在gssapi认证阶段,此时安装包并不需要变更,只需修改sshd_config中的GSSAPIAuthentication为no,同时增加ClientAliveInterval保持会话,这些参数属于配置层面,与包列表无关,修改后执行sudo systemctl restart sshd即可生效。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/ssh%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%ae%89%e8%a3%85%e9%9c%80%e8%a6%81%e5%93%aa%e4%ba%9b%e5%bf%85%e5%a4%87%e5%8c%85%ef%bc%9f%ef%bc%8c%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96%e6%80%8e%e4%b9%88%e8%a7%a3/

赞 (0)
河北联通DNS服务器地址是多少,怎么手动设置
上一篇 2026年10月2日 03:27
简米云服务器root密码多久过期,怎么查看剩余时间?
下一篇 2026年10月2日 03:28

相关推荐

  • 服务器带宽和流量什么关系?带宽越大流量越多吗?

    服务器带宽决定数据传输的速度上限,而流量则是实际传输数据的总量,二者是“水管粗细”与“流出水量”的关系,核心结论是:带宽越大,网站承载并发访问的能力越强,流量消耗的速度越快;流量则是带宽在时间维度上的累积,直接对应业务规模,理解这一关系,是进行服务器成本控制和性能优化的基础, 带宽与流量的本质定义要厘清二者关系……

    2026年3月6日
    13500
  • SSL证书绑定域名怎么填?SSL证书绑定域名填主域名还是www

    SSL证书绑定域名时,必须严格填写申请证书时提供的完整域名,主域名需单独绑定,子域名需单独申请或购买泛域名证书,且域名需已完成ICP备案(针对中国大陆服务器)并解析到服务器IP,很多站长在配置HTTPS时,常因域名填写不规范导致证书无法验证或浏览器报红,这并非技术难题,而是对证书绑定逻辑理解偏差所致,本文将拆解……

    2026年6月20日
    2500
  • 装机房服务器有哪些配置,怎么选性价比高?

    装机房服务器没有统一答案,核心取决于业务规模、预算和部署场景,但绝大多数中小机房的首选是机架式服务器,搭配少量塔式或刀片型号解决特定需求,初入这行的人看着设备清单最容易懵,网上搜出来的型号五花八门,参数表密密麻麻,越看越拿不定主意,作为在机房摸爬滚打多年的老运维,我试着用最接地气的方式帮你拆解这个问题,看完之后……

    服务器宽带 2026年10月22日
    100
  • Windows云服务器怎么搭建网站?新手建站详细教程

    在Windows云服务器上搭建网站,核心在于利用IIS服务配置站点、绑定域名并安装SSL证书,相比Linux环境,其优势在于对ASP.NET等微软技术栈的原生支持,适合企业级应用或特定开发需求,为什么选择Windows云服务器搭建网站很多站长在初期选型时,常在Linux和Windows之间犹豫,业内专家指出,选……

    2026年6月24日
    1900
  • 云服务器有哪些项目可以做,怎么选配置不踩坑?

    云服务器能做的项目,远不止搭个网站那么简单, 从个人博客、API后端、数据库备份,到爬虫采集、自动化任务和在线业务系统,只要需要长时间在线运行的任务,云服务器几乎都能承接,这篇文章按使用频率和需求权重,把常见项目类型、选型思路、搭建步骤和价格逻辑一次讲透,云服务器有哪些常见项目类型很多人的第一反应是“放个网站……

    2026年10月2日
    100
  • 台式内存服务器有哪些型号可选,哪个品牌性价比高

    台式内存服务器并不是一个官方的硬件分类,市面上真正被这么叫的产品通常只有两类:品牌塔式服务器和自组大内存主机;前者买回来就能稳定跑,后者用普通机箱加工作站主板拼出高容量内存,适合动手能力强的用户,“台式内存服务器有哪些类型”这个问题,我拆开给你讲清楚,你搜这个关键词时,基本会遇到三拨完全不同的东西,不提前分辨很……

    2026年10月16日
    100
  • Access数据库空值怎么设置?如何设置Access数据库允许空值

    在Access数据库中,空值(Null)代表“未知”或“缺失”,与零或空字符串截然不同,正确设置空值能避免数据计算错误和查询失效,核心操作是在表设计视图中将“允许空字符串”设为否,并确保字段不强制默认值,很多初学者在处理Access数据时,常常混淆“空值”、“零”和“空字符串”的概念,导致后续报表统计出现偏差……

    2026年7月3日
    2500
  • Astra Pro有哪些特色功能?如何安装

    Astra Pro凭借高精度结构光技术与AI自适应算法,在工业检测与3D建模领域实现了厘米级甚至毫米级的快速扫描,是追求高效数字化解决方案的首选设备,Astra Pro核心功能解析:为何它成为行业新宠Astra Pro并非普通的深度相机,它集成了先进的结构光投影与高速图像处理单元,对于从事自动化产线、机器人引导……

    2026年6月26日
    2800
  • Rocky Linux怎么装MongoDB?Rocky Linux服务器安装配置MongoDB数据库教程

    在Rocky Linux服务器上安装并配置MongoDB,最稳妥的方案是通过官方YUM源进行RPM包安装,随后配置systemd服务并调整防火墙规则,即可在几分钟内获得一个生产可用的数据库环境,对于许多从CentOS迁移过来的运维人员来说,Rocky Linux作为RHEL的下游发行版,其兼容性和稳定性备受推崇……

    2026年6月21日
    2000
  • HTML悬停图片如何放大?鼠标悬停图片变大特效代码

    通过CSS的transform属性配合transition过渡效果,可以实现鼠标悬停时图片平滑放大的视觉交互,这是提升网页用户体验和视觉吸引力的低成本且高效的前端技术解决方案,呈现日益重要的今天,静态的图片展示已经难以满足用户对沉浸式浏览的需求,无论是电商网站的商品展示,还是个人博客的摄影作品集,动态的视觉反馈……

    2026年6月7日
    3700

发表回复

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