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/7/24 20:55:12 阅读更多 →
The Unreasonable Ineffectiveness of the Deeper Layers

The Unreasonable Ineffectiveness of the Deeper Layers

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

2026/7/24 20:55:12 阅读更多 →
【无状态】

【无状态】

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

2026/7/24 20:55:12 阅读更多 →

最新新闻

启点创新全域旅游AI客流统计系统,全域旅游客流监测平台搭建

启点创新全域旅游AI客流统计系统,全域旅游客流监测平台搭建

启点创新全域旅游AI客流统计系统是一套依托物联网、大数据、AI算法与区块链技术构建的智慧旅游管理解决方案,旨在通过“天地空一体化监测网络”实现客流感知、智能决策与生态守护的全场景覆盖,提升景区运营效率、优化游客体验并保障安全。以下从技术架构…

2026/7/24 21:04:15 阅读更多 →
培训考试系统自定义水印功能实操指南 —— 技术实现、配置步骤与 API 对接

培训考试系统自定义水印功能实操指南 —— 技术实现、配置步骤与 API 对接

在企业级培训考试系统的技术选型中,自定义水印功能的 “技术成熟度、可扩展性、兼容性” 是技术负责人重点关注的指标。作为一款面向企业用户的专业培训考试解决方案,宏远培训考试系统的自定义水印功能不仅满足基础的标识需求,更提供了灵活的…

2026/7/24 21:04:15 阅读更多 →
Nintendo Switch大气层系统完整安装教程:从新手到高手

Nintendo Switch大气层系统完整安装教程:从新手到高手

Nintendo Switch大气层系统完整安装教程:从新手到高手 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 想要让你的Nintendo Switch游戏机焕发新生吗?大气层系统安装是…

2026/7/24 21:04:15 阅读更多 →
如何通过ComfyUI-Easy-Use大幅提升AI图像生成效率

如何通过ComfyUI-Easy-Use大幅提升AI图像生成效率

如何通过ComfyUI-Easy-Use大幅提升AI图像生成效率 【免费下载链接】ComfyUI-Easy-Use In order to make it easier to use the ComfyUI, I have made some optimizations and integrations to some commonly used nodes. 项目地址: https://gitcode.com/gh_mirrors/co/ComfyU…

2026/7/24 21:04:15 阅读更多 →
BetterNCM Installer:3分钟搞定网易云插件安装的完整指南

BetterNCM Installer:3分钟搞定网易云插件安装的完整指南

BetterNCM Installer:3分钟搞定网易云插件安装的完整指南 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件安装的复杂步骤烦恼吗?BetterNCM…

2026/7/24 21:04:15 阅读更多 →
grafana配置redis数据源预警误报问题(database is locked)

grafana配置redis数据源预警误报问题(database is locked)

因为grafana上支持直接配置redis数据源的插件,可以直接在grafana上配置监控和告警,不用每台redis去配置监控客户端,比较契合我的redis集群多的需求,于是我就把redis监控从prometheus直接挪到了grafana上,开始用着挺正常的,但是用了一段时间后开始出现间歇性的瞬时告警,去…

2026/7/24 21:03:15 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻