Linxu 配置SSH服务
文章目录Linxu 配置SSH服务 SSH密钥认证公钥与私钥的配对游戏 认证的完整流程 角色总结谁拿公钥谁拿私钥1. 安装 SSH 服务2. 配置文件详解2.1. 修改默认端口 (Port)2.2. 禁用 root 用户直接登录 (PermitRootLogin)2.3. 禁用密码认证强制使用密钥登录 (PasswordAuthentication)2.4. 允许公钥认证 (PubkeyAuthentication)步骤 1: 在客户端生成密钥对 (如果还没有)步骤 2: 将公钥上传到服务器步骤 3: 测试登录2.5. 限制可登录的用户 (AllowUsers)2.6. 其他重要配置3. 使用注意事项与最佳实践4. 故障排除Linxu 配置SSH服务SSH (Secure Shell) 是一种加密网络协议用于在不安全的网络上安全地运行网络服务。最常见的用途是远程登录到系统并进行命令行操作。Linux 上最广泛使用的 SSH 实现是OpenSSH。 SSH密钥认证公钥与私钥的配对游戏SSH密钥认证的核心是一对数学上相关联的“钥匙”公钥 (Public Key)可以公开的“锁”。你把它放在目标服务器上相当于给服务器装上了一把只能由特定私钥打开的锁。私钥 (Private Key)必须保密的“钥匙”。由客户端这里是JumpServer持有用于打开那把锁。 认证的完整流程整个认证过程就像是一个“对暗号”的过程部署公钥装锁管理员将JumpServer的公钥提前部署到目标服务器192.168.3.2的 ~/.ssh/authorized_keys 文件中。这相当于在目标服务器上装了一把锁。发起连接拿钥匙开门当用户通过JumpServer点击连接时 JumpServer会作为SSH客户端使用其保管的私钥向目标服务器发起认证请求。加密与解密对暗号目标服务器收到请求后会生成一个随机字符串挑战并用之前部署的公钥进行加密然后发送给JumpServer。JumpServer收到这个加密的字符串后用自己持有的私钥进行解密。最后JumpServer将解密后的字符串发回给目标服务器。认证成功暗号正确目标服务器将收到的字符串与之前生成的进行比对。如果一致就证明JumpServer持有正确的私钥认证成功连接建立。 角色总结谁拿公钥谁拿私钥通过这个过程我们可以清晰地看到两者的分工目标服务器 (192.168.3.2)扮演“门”的角色。它只存储公钥锁用于验证来访者的身份。JumpServer扮演“钥匙管理员”的角色。它保管着私钥钥匙用于开启目标服务器上的锁。1. 安装 SSH 服务OpenSSH 通常分为客户端 (ssh) 和服务器 (sshd) 两部分。Ubuntu / Debian:# 更新软件包列表sudoaptupdate# 安装 SSH 客户端 (通常默认已安装)sudoaptinstallopenssh-client# 安装 SSH 服务器sudoaptinstallopenssh-serverCentOS / RHEL / Fedora:# 安装 SSH 客户端和服务端 (在较新版本中minimal安装可能默认不包含)sudoyuminstallopenssh-server openssh-clients# CentOS/RHELsudodnfinstallopenssh-server openssh-clients# Fedora/RHEL 8# 启用并启动服务 (安装后通常已自动启动但可以确认下)sudosystemctlenablesshdsudosystemctl start sshd服务状态检查# 检查 SSH 服务状态sudosystemctl statusssh# 对于某些系统如CentOS服务名可能是 sshdsudosystemctl status sshd# 如果服务未运行启动它sudosystemctl startssh# 设置开机自启sudosystemctlenablessh# 重新加载配置sudosystemctl reloadssh# ubuntu22.04版本执行下面两条命令sudosystemctl daemon-reloadsudosystemctl restart ssh.socket# 重启服务sudosystemctl restartssh# 查看ssh监听端口号sudoss-tlnp|grepsshd2. 配置文件详解SSH 的主要配置文件位于/etc/ssh/sshd_config。在修改任何配置之前务必备份原文件sudocp/etc/ssh/sshd_config /etc/ssh/sshd_config.baksudovim/etc/ssh/sshd_config关键配置项说明2.1. 修改默认端口 (Port)#Port 22 # 默认端口是 22注释状态Port56789# 取消注释并修改为一个高端口号如 56789注意修改端口后防火墙必须放行新端口且连接时必须指定端口ssh -p 56789 userhostname。2.2. 禁用 root 用户直接登录 (PermitRootLogin)PermitRootLogin no# 强烈建议设置为 no禁用后先使用普通用户登录然后通过su或sudo切换为 root增加一层安全屏障。2.3. 禁用密码认证强制使用密钥登录 (PasswordAuthentication)PasswordAuthentication no# 设置为 no 以禁用密码登录这是最简单的方式但也是最不安全的容易遭受暴力破解。开启后使用方式ssh -p 56789 usernameserver_ip然后输入用户密码。警告在确认密钥登录无误之前切勿将此选项设为no否则可能把自己锁在服务器外。2.4. 允许公钥认证 (PubkeyAuthentication)PubkeyAuthenticationyes# 通常默认就是 yes**更安全**使用一对加密密钥公钥和私钥进行认证。公钥放在服务器上私钥留在本地客户端。步骤 1: 在客户端生成密钥对 (如果还没有)# 使用ed25519推荐更安全更短过程中会提示输入passphrase加强保护ssh-keygen-ted25519-f/root/.ssh/backup_id# 执行后会提示你输入密钥的保存路径默认为 ~/.ssh/backup_id.pub和密码passphrase。# 或者使用rsassh-keygen-trsa-b4096-Cyour_emailexample.com# 传统方式# 执行后会提示你输入密钥的保存路径默认为 ~/.ssh/id_rsa.pub。Passphrase为私钥再添加一层密码保护即使私钥文件被盗也无法直接使用。步骤 2: 将公钥上传到服务器如果服务器上没有 authorized_keys 文件执行ssh localhost正常生成.ssh文件夹和authorized_keys如果还没有则使用方式二手动创建复制# 方式一ssh-copy-id-i~/.ssh/id_ed25519.pub-pport_number usernameserver_ip# 方式二(手动)mkdir-p~/.sshchmod700~/.sshecho粘贴您的公钥内容 here~/.ssh/authorized_keyschmod600~/.ssh/authorized_keys这会将你的公钥内容追加到服务器上的~/.ssh/authorized_keys文件中。步骤 3: 测试登录ssh-pport_number usernameserver_ip2.5. 限制可登录的用户 (AllowUsers)AllowUsers user1 user2192.168.1.100此例只允许用户user1从任何地址登录以及用户user2只能从 IP192.168.1.100登录。2.6. 其他重要配置Protocol2# 只使用更安全的 SSHv2 协议PermitEmptyPasswords no# 禁止空密码登录MaxAuthTries3# 最大认证尝试次数ClientAliveInterval300# 客户端无响应300秒后断开连接ClientAliveCountMax2# 客户端存活检测次数3. 使用注意事项与最佳实践备份配置修改sshd_config前务必备份。测试配置使用sshd -t测试配置文件语法是否正确然后再重载服务。sudosshd-t保持连接修改关键设置如端口、禁用密码时始终保持至少一个活动的 SSH 连接会话。这样如果新配置导致无法登录你还可以通过旧的会话来恢复配置。防火墙规则任何对 SSH 端口的修改包括默认的 22都必须相应地在防火墙ufwfirewalldiptables中更新规则放行新的端口。Fail2Ban安装 Fail2Ban 工具来自动封锁多次尝试 SSH 密码失败的 IP 地址有效防止暴力破解。使用参考文章Fail2Ban 工具的使用更新软件定期更新系统及 OpenSSH 软件包以获取安全补丁。参考文章升级openssh至最新版禁用不用的算法对于更高安全要求的环境可以考虑在sshd_config中禁用较弱的加密算法、MAC 算法和密钥交换算法。强制选择连接方式在测试阶段可以使用命令ssh -o PreferredAuthenticationspassword -o PubkeyAuthenticationno userhostname强制使用密码连接不使用密钥4. 故障排除连接被拒绝 (Connection refused)服务未运行或防火墙拦截。权限太开放 (Permissions are too open)~/.ssh目录权限应为700~/.ssh/authorized_keys文件权限应为600。chmod700~/.sshchmod600~/.ssh/authorized_keys调试模式使用-vverbose参数查看详细的连接过程对排查问题极有帮助。ssh-v-pport_number userhostname查看日志服务器端的 SSH 日志通常位于/var/log/auth.log(Debian/Ubuntu) 或/var/log/secure(CentOS/RHEL)。

相关新闻

终极文档下载指南:如何免费下载30+文库平台的任意文档

终极文档下载指南:如何免费下载30+文库平台的任意文档

终极文档下载指南:如何免费下载30文库平台的任意文档 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解…

2026/10/12 23:31:11 阅读更多 →
The Unreasonable Ineffectiveness of the Deeper Layers

The Unreasonable Ineffectiveness of the Deeper Layers

这篇论文研究了一个非常直接的问题:对于已经预训练好的大语言模型,越靠后的Transformer层是否都不可替代?能否直接删除一段完整的深层网络,再通过少量微调恢复模型能力?作者发现,一些大模型在删除接近一半T…

2026/10/6 16:10:53 阅读更多 →
【无状态】

【无状态】

从决定回老家工作之后,心里总是有点不痛快,感觉自己学了这么多之后最后还是要回到这个小镇,所以朋友圈也没有发任何与公司有关的东西,从心里还是有些接受不了,离开深圳代表我要离开结识的第一批工作上的朋友&#xff0…

2026/10/8 4:43:31 阅读更多 →

最新新闻

X-12-ARIMA季节性调整实战:编译、调用与诊断

X-12-ARIMA季节性调整实战:编译、调用与诊断

简介:本资源是一套面向经济学、金融学及数据科学学习者与从业者的X-12-ARIMA季节性调整可运行源码包,聚焦时间序列分析中的核心痛点——剥离季节性波动以识别真实趋势。资源包含7个文件:1个核心Python脚本(seasonal_adjustment.py…

2026/10/14 23:25:53 阅读更多 →
Java try-catch-finally执行顺序:return与finally的4道经典题

Java try-catch-finally执行顺序:return与finally的4道经典题

最近一年里,我面试别人和被别人考的次数加起来不少,几乎每次都会碰到 try-catch-finally 相关的执行顺序题。说实话,这类题目真正让人难受的不是语法难,而是里面藏了几条反直觉的规则:明明 try 先 return 了&#xff0…

2026/10/14 23:25:53 阅读更多 →
X-12-ARIMA季节性调整实战:零售销量归因与可解释时间序列分解

X-12-ARIMA季节性调整实战:零售销量归因与可解释时间序列分解

简介:本资源是一套面向经济学、金融学及数据科学学习者与从业者的X-12-ARIMA季节性调整可运行源码包,聚焦时间序列分析中的核心痛点——剥离季节性波动以识别真实趋势。资源包含7个文件:1个核心Python脚本(seasonal_adjustment.py…

2026/10/14 23:25:53 阅读更多 →
开源Wiki选型避坑指南:从技术路线到部署迁移

开源Wiki选型避坑指南:从技术路线到部署迁移

刚开始接触开源wiki选型那阵子,我是真没想到这个过程会这么磨人。前两天帮一个团队搭内部知识库,光是听他们报出的候选名单——MediaWiki、DokuWiki、BookStack、Wiki.js,就让我在浏览器里来回横跳了两个晚上。网上讲这几个工具的资料不少&am…

2026/10/14 23:25:53 阅读更多 →
信息学竞赛复赛试题拆解:从模拟到动态规划的C++训练指南

信息学竞赛复赛试题拆解:从模拟到动态规划的C++训练指南

简介:第十八届绍兴市少儿信息学竞赛复赛试题以docx文档形式打包,面向小学阶段参与NOIP类信息学竞赛的选手,可作为编程入门与竞赛实战的练习材料。压缩包内为一个docx文件,大小约为32KB,包含“好朋友”“统计人口”“卫…

2026/10/14 23:25:53 阅读更多 →
AnyPS5跨平台串流方案:开源协议实现低延迟高画质游戏串流

AnyPS5跨平台串流方案:开源协议实现低延迟高画质游戏串流

1. 从“AnyPS5”这个标题说起:一个跨平台游戏串流方案的设计与实现第一次看到“AnyPS5”这个标题,我的直觉是:这大概率是一个围绕主机游戏串流展开的项目,核心目标应该是让玩家在非原装屏幕、非原生系统的设备上,也能玩…

2026/10/14 23:24:46 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →