Jenkins SSH连接远程服务器:自动化部署的完整配置与实战指南
1. 项目概述为什么Jenkins连接远程服务器是自动化部署的基石如果你正在用Jenkins做自动化构建但构建出来的包、镜像或者测试报告还停留在本地那这个自动化流程的价值就大打折扣了。真正的自动化是从代码提交开始到最终应用在目标服务器上运行起来全程无人值守。而连接远程服务器就是打通这“最后一公里”的关键。我见过不少团队Jenkins构建玩得很溜但部署还得手动FTP上传、手动执行脚本这本质上只是“半自动”。今天要聊的就是如何让Jenkins通过SSH Server像操作本地机器一样安全、可靠地操作远程服务器。这不仅仅是配置一个插件那么简单它涉及到认证方式的选择、网络环境的适配、命令执行的稳定性以及如何将这一能力融入到你的流水线Pipeline中。无论是部署一个简单的Web应用到测试服务器还是在生产集群中执行复杂的滚动更新稳固的SSH连接都是底层保障。接下来我会从原理到实操把配置SSH Server连接远程服务器的每一个细节、每一个可能踩的坑都掰开揉碎了讲清楚。2. SSH连接的核心原理与Jenkins的集成方式在动手配置之前我们得先搞清楚Jenkins是怎么通过SSH和远程服务器“对话”的。这能帮你理解后续每一个配置项的意义出了问题也知道该往哪个方向排查。2.1 SSH协议简析不止是加密传输SSHSecure Shell协议的核心价值在于它在不安全的网络比如互联网上为两台计算机之间建立了一个加密的通信隧道。对于Jenkins来说它主要利用SSH做两件事认证Authentication向远程服务器证明“我是我我有权限操作你”。命令执行Command Execution在加密隧道内向远程服务器发送命令并获取执行结果。常见的认证方式有两种密码认证最简单但自动化场景下最不推荐。你需要把密码明文或加密后存储在Jenkins中存在安全风险且无法实现完全的非交互式登录虽然可以通过sshpass等工具绕过但更不推荐。密钥对认证这是自动化领域的黄金标准。它使用一对非对称加密的密钥私钥Private Key和公钥Public Key。私钥由Jenkins保管绝对保密公钥则放置到远程服务器的指定文件通常是~/.ssh/authorized_keys中。连接时服务器用公钥挑战Jenkins用私钥应答通过数学验证即可建立连接全程无需输入密码。注意在配置Jenkins SSH连接时强烈建议甚至可以说是强制要求使用密钥对认证。这是安全性和自动化可靠性的双重保障。2.2 Jenkins的SSH能力载体SSH Agent与SSH Pipeline StepsJenkins本身并不直接具备SSH客户端功能它通过插件来扩展这项能力。最核心的插件是SSH Agent Plugin和SSH Pipeline Steps。SSH Agent Plugin这个插件的作用是在Jenkins的构建环境中临时管理一个或多个SSH私钥。你可以把它想象成一个“钥匙管家”。在Pipeline中你用一个sshagent块把需要执行远程SSH命令的步骤包裹起来并指定使用哪把“钥匙”对应Jenkins中配置的SSH凭据ID插件就会自动设置好SSH_AUTH_SOCK环境变量让里面的sh步骤能无缝使用这些密钥去连接远程服务器。SSH Pipeline Steps这个插件提供了更直接、更强大的Pipeline DSL领域特定语言步骤比如sshCommand、sshScript、sshPut、sshGet等。使用这些步骤你无需关心底层ssh-agent的启动和管理直接在步骤中指定远程主机、命令或文件操作即可语法更简洁功能也更专一。简单来说SSH Agent Plugin提供了基础的密钥管理环境而SSH Pipeline Steps是在此之上封装好的、开箱即用的高级工具。在复杂的流水线中两者结合使用非常常见。2.3 远程服务器的SSH服务端配置要点光有Jenkins这边准备好还不行远程服务器SSH Server端也得开门迎客。这里有几个关键配置通常位于/etc/ssh/sshd_config文件中允许密钥认证确保PubkeyAuthentication yes。禁用密码认证推荐为了安全可以在配置好密钥后设置PasswordAuthentication no。但初期调试时可以先保持yes等密钥连通成功后再关闭。允许root登录谨慎PermitRootLogin参数。出于安全考虑生产环境不建议直接允许root通过SSH登录。更佳实践是创建一个具有sudo权限的专用部署用户如jenkins或deploy在Jenkins中使用该用户连接。如果必须使用root可设置为PermitRootLogin prohibit-password仅允许密钥登录。重启服务修改配置后执行systemctl restart sshdSystemd系统或service ssh restartSysVinit系统使配置生效。一个常见的误区是只关注Jenkins的配置却忽略了服务器端的防火墙。请确保服务器的防火墙如firewalld、iptables或云服务商的安全组开放了SSH端口默认为22。3. 在Jenkins中配置SSH Server连接的全流程实操理论清楚了我们进入实战环节。我会以创建一个名为“Production-Server”的SSH服务器连接为例演示从密钥生成到Pipeline调用的完整过程。3.1 第一步生成与部署SSH密钥对这是所有工作的起点。我们将在Jenkins服务器上生成密钥对。登录Jenkins服务器通常也是一个Linux系统。切换到Jenkins进程的运行用户。这一点非常重要如果Jenkins是以jenkins用户运行的那么密钥就应该由这个用户生成否则会出现权限问题。sudo su - jenkins # 切换到jenkins用户假设用户名为jenkins生成密钥对。执行以下命令一路回车即可不建议设置密码短语否则每次使用都需要输入失去了自动化的意义。ssh-keygen -t rsa -b 4096 -C jenkinsproduction -f ~/.ssh/id_rsa_jenkins_prod-t rsa: 指定密钥类型为RSA。-b 4096: 指定密钥长度为4096位更安全。-C: 添加注释便于识别。-f: 指定密钥文件存放路径和名称。这里我们生成一个专用的密钥避免与用户已有的默认密钥id_rsa混淆。查看生成的密钥。命令执行后会在~/.ssh/目录下生成两个文件id_rsa_jenkins_prod:私钥文件。这个文件的内容就是我们要配置到Jenkins凭据里的绝密信息。id_rsa_jenkins_prod.pub:公钥文件。这个文件的内容需要部署到远程服务器上。部署公钥到远程服务器。假设远程服务器的IP是192.168.1.100我们打算用deploy用户进行连接。# 在Jenkins服务器上执行 ssh-copy-id -i ~/.ssh/id_rsa_jenkins_prod.pub deploy192.168.1.100这条命令会自动将公钥内容追加到远程服务器deploy用户家目录下的~/.ssh/authorized_keys文件中。如果ssh-copy-id不可用可以手动操作# 将公钥内容复制到剪贴板或一个临时文件 cat ~/.ssh/id_rsa_jenkins_prod.pub # 然后登录远程服务器 ssh deploy192.168.1.100 # 在远程服务器上确保.ssh目录存在且权限正确 mkdir -p ~/.ssh chmod 700 ~/.ssh # 将公钥内容追加到authorized_keys文件 echo “你的公钥内容” ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys测试密钥连接。在Jenkins服务器上使用刚生成的私钥测试连接是否成功。ssh -i ~/.ssh/id_rsa_jenkins_prod deploy192.168.1.100 “whoami”如果返回deploy恭喜你最关键的密钥通道已经打通了。3.2 第二步在Jenkins中配置SSH凭据现在我们需要把私钥“交给”Jenkins管理。登录Jenkins控制台点击左侧菜单的“Manage Jenkins”-“Manage Credentials”。在凭证存储域通常是“全局”下点击“Add Credentials”。按如下内容填写表单Kind: 选择 “SSH Username with private key”。Scope: 保持默认 “Global”。ID: 填写一个唯一标识符例如ssh-key-for-prod-server。这个ID后续在Pipeline中会用到。Description: 写一个清晰的描述如 “Production Server Deploy Key”。Username: 填写远程服务器的用户名即我们刚才使用的deploy。Private Key: 选择 “Enter directly”。点击 “Add” 按钮然后将私钥文件 (id_rsa_jenkins_prod)的全部内容包括-----BEGIN RSA PRIVATE KEY-----和-----END RSA PRIVATE KEY-----粘贴到文本框中。Passphrase: 如果你生成密钥时设置了密码短语这里需要填写。否则留空。点击“Create”。这样一个SSH凭据就创建好了。实操心得为什么不建议用“From a file on Jenkins master”选项虽然它看起来更简单但你需要确保Jenkins进程用户如jenkins有权限读取那个私钥文件。而“Enter directly”方式将密钥加密存储在Jenkins内部数据库中管理更集中与服务器文件系统解耦是更推荐的做法。3.3 第三步在Pipeline中调用SSH连接凭据准备好了我们来看看如何在Jenkins Pipeline中使用它。这里展示两种最常用的方式。方式一使用 SSH Agent Plugin 原生 sh 命令这种方式更底层灵活性高适合执行复杂的多步SSH操作。pipeline { agent any stages { stage(‘Deploy to Production’) { steps { // 使用 sshagent 块来管理密钥 sshagent([‘ssh-key-for-prod-server’]) { // 使用刚才创建的凭据ID sh ‘’’ # 现在在这个sh块内可以像在本地一样使用ssh命令 # Jenkins会自动处理好密钥的认证代理 ssh -o StrictHostKeyCheckingno deploy192.168.1.100 “cd /opt/app git pull origin main” ssh deploy192.168.1.100 “cd /opt/app docker-compose up -d --build” # 甚至可以执行需要sudo的命令前提是deploy用户有sudo权限且配置了无密码sudo ssh deploy192.168.1.100 “echo ‘your-sudo-password’ | sudo -S systemctl restart nginx” ‘’’ } } } } }-o StrictHostKeyCheckingno这个参数在首次连接时跳过“是否信任主机”的提示对于自动化脚本是必要的但会降低一点安全性。在生产流水线中更安全的做法是提前将远程服务器的主机密钥指纹已知到Jenkins服务器的known_hosts文件中。方式二使用 SSH Pipeline Steps 插件这种方式语法更优雅专为Pipeline设计特别适合文件传输。pipeline { agent any stages { stage(‘Deploy’) { steps { script { // 定义远程服务器连接信息 def remote [:] remote.name ‘production’ remote.host ‘192.168.1.100’ remote.user ‘deploy’ remote.port 22 remote.allowAnyHosts true // 相当于 StrictHostKeyCheckingno // 执行远程命令 sshCommand remote: remote, command: “cd /opt/app git pull”, sshCredentialsId: ‘ssh-key-for-prod-server’ // 上传文件到远程服务器 sshPut remote: remote, from: ‘target/myapp.jar’, into: ‘/opt/app/’, sshCredentialsId: ‘ssh-key-for-prod-server’ // 从远程服务器下载文件 sshGet remote: remote, from: ‘/opt/app/logs/app.log’, into: ‘./’, sshCredentialsId: ‘ssh-key-for-prod-server’ // 执行一个本地的脚本文件到远程服务器 sshScript remote: remote, script: ‘deploy.sh’, sshCredentialsId: ‘ssh-key-for-prod-server’ } } } } }这种方式代码更清晰错误信息也更容易被Jenkins捕获和展示。4. 高级配置与稳定性优化基础的连接配置完成后我们还需要考虑一些高级场景和稳定性问题确保这条自动化通道在生产环境中坚如磐石。4.1 管理多个服务器与凭据的最佳实践当你有开发、测试、预发布、生产等多套环境时硬编码IP和凭据ID在Pipeline里是灾难。最佳实践是使用Jenkins的“凭据绑定”和“环境变量”或者共享库Shared Library。方法A使用参数化构建和凭据绑定在Pipeline顶部定义参数让用户在构建时选择环境。parameters { choice(name: ‘DEPLOY_ENV’, choices: [‘dev’, ‘test’, ‘prod’], description: ‘Select deploy environment’) }在Jenkins中为每个环境创建独立的SSH凭据ID如ssh-key-{env}。在Pipeline脚本中通过参数动态选择凭据和服务器地址。script { def configs [ ‘dev’: [host: ‘192.168.1.101’, credId: ‘ssh-key-dev’], ‘test’: [host: ‘192.168.1.102’, credId: ‘ssh-key-test’], ‘prod’: [host: ‘10.0.1.100’, credId: ‘ssh-key-prod’] ] def cfg configs[params.DEPLOY_ENV] sshCommand remote: [host: cfg.host, user: ‘deploy’], command: “...”, sshCredentialsId: cfg.credId }方法B使用共享库集中管理配置将服务器连接信息、凭据ID等抽象成配置类存放在独立的Git仓库共享库中。所有Pipeline项目都引用这个共享库实现配置的集中管理和复用。这是中大型项目的标配。4.2 网络与连接稳定性处理自动化部署最怕网络抖动导致SSH连接中断命令执行一半。以下策略可以提升鲁棒性设置SSH超时和重试参数在ssh命令或sshCommand步骤中使用-o选项设置连接参数。sshCommand remote: remote, command: “long_running_task.sh”, sshCredentialsId: ‘xxx’, timeout: 600, timeoutUnit: ‘SECONDS’或者在原生sh中ssh -o ConnectTimeout30 -o ServerAliveInterval60 -o ServerAliveCountMax5 deployhost “command”ConnectTimeout30连接超时30秒。ServerAliveInterval60每60秒发送一次保活包。ServerAliveCountMax5连续5次保活无响应后断开连接。实现命令重试机制对于关键但可能因网络瞬断失败的命令可以在Pipeline中实现重试逻辑。Jenkins Pipeline原生支持retry步骤。retry(3) { // 最多重试3次 sshCommand remote: remote, command: “critical_deploy_step.sh”, sshCredentialsId: ‘xxx’ }使用nohup或tmux执行后台任务如果你通过SSH启动一个需要长时间运行的服务比如一个Java应用直接执行命令当SSH连接断开时该命令可能会被终止。需要使用nohup或tmux来让进程在后台持续运行。ssh deployhost “nohup /opt/app/startup.sh /var/log/app.log 21 ” # 或者使用tmux创建一个持久会话 ssh deployhost “tmux new-session -d -s myapp ‘/opt/app/startup.sh’”4.3 安全加固建议自动化带来了便利也带来了风险。以下几点安全建议务必考虑使用专用部署用户绝对不要使用root用户。创建一个如deploy的专用用户并通过sudo精细控制其权限例如仅允许重启特定服务、操作特定目录。配置无密码sudo时在/etc/sudoers.d/deploy文件中使用NOPASSWD标签并限定命令。# /etc/sudoers.d/deploy deploy ALL(ALL) NOPASSWD: /usr/bin/systemctl restart myapp, /opt/app/deploy.sh限制SSH访问来源IP在远程服务器的/etc/ssh/sshd_config中使用AllowUsers或AllowGroups并结合防火墙规则只允许Jenkins服务器的IP地址通过SSH端口访问。定期轮换密钥像对待密码一样定期如每季度或每半年更换SSH密钥对并在Jenkins和所有目标服务器上更新。审计日志确保远程服务器上的SSH日志/var/log/auth.log或/var/log/secure被妥善保存和监控记录所有来自Jenkins的连接和操作。5. 实战问题排查与调试技巧实录配置过程再顺利也难免会遇到问题。这里记录了几个我踩过的坑和对应的排查思路希望能帮你快速定位问题。5.1 常见错误与解决方案速查表错误现象可能原因排查步骤与解决方案Permission denied (publickey).1. 私钥未正确加载或凭据配置错误。2. 公钥未正确部署到远程服务器。3. 远程服务器sshd_config中PubkeyAuthentication设置为no。4. 远程服务器上.ssh目录或authorized_keys文件权限不对。1.本地测试在Jenkins服务器上用ssh -i命令手动测试验证密钥本身是否有效。2.检查公钥登录远程服务器检查~/.ssh/authorized_keys文件内容是否完整、末尾有无换行。3.检查权限确保远程服务器上.ssh目录权限为700authorized_keys文件权限为600并且所有者是目标用户。4.查看日志在远程服务器上查看/var/log/auth.log通常会有详细的拒绝原因。Connection timed out或Connection refused1. 网络不通防火墙/安全组未放行22端口。2. 远程SSH服务未运行。3. IP地址或端口号错误。1.网络诊断从Jenkins服务器ping和telnet远程服务器的22端口。2.检查服务登录远程服务器如果可能检查sshd服务状态systemctl status sshd。3.检查防火墙确认服务器本地防火墙firewall-cmd --list-all和云平台安全组规则。命令执行成功但进程在SSH断开后终止SSH会话结束时其启动的进程默认会收到SIGHUP信号而终止。使用nohup、disown或tmux/screen等工具来剥离进程与当前会话的关联。例如nohup command 。Jenkins Pipeline中SSH步骤卡住无输出1. 远程命令等待交互式输入如sudo需要密码。2. 命令本身是持续输出的前台进程未放入后台。1.避免交互确保所有命令都能非交互式执行。对于sudo配置无密码或使用echo ‘password’Host key verification failed.Jenkins服务器首次连接该主机未将主机密钥加入已知列表。1.临时方案不推荐生产在ssh命令或SSH步骤配置中添加-o StrictHostKeyCheckingno或allowAnyHosts: true。2.永久方案在Jenkins服务器上以Jenkins进程用户身份手动SSH连接一次目标服务器将主机密钥加入~/.ssh/known_hosts。或者使用ssh-keyscan命令预先收集密钥。5.2 高效的调试技巧当Pipeline中的SSH步骤失败时不要只看Jenkins控制台输出的错误信息那可能只是最后的结果。启用SSH详细模式在测试阶段的sh脚本中为ssh命令加上-vvv参数这会输出极其详细的连接过程日志包括密钥尝试、认证协商等每一步是定位复杂问题的利器。ssh -vvv -i /path/to/key userhost “command”在远程服务器上独立测试命令将Pipeline中准备执行的复杂命令先手动在远程服务器的终端里执行一遍确保其本身能正常工作。这能排除命令语法、环境变量、权限等非连接性问题。在Pipeline中输出关键变量在执行SSH命令前用echo或println输出将要使用的IP、用户名、凭据ID等确保这些变量值符合预期。分阶段执行将一个复杂的部署脚本拆分成多个独立的SSH命令步骤。这样当失败时你能清晰地知道是在哪个具体步骤出的问题而不是面对一个庞大的脚本无从下手。查看Jenkins Agent环境如果你使用的是分布式构建SSH命令是在某个Agent节点上执行的。确保该Agent节点具备出网权限并且其上的ssh命令行工具可用。配置Jenkins的SSH连接就像给自动化部署的火箭安装了精准的导航系统。从最初的密钥握手到稳定的命令通道再到生产环境下的安全加固和异常处理每一个环节都需要我们仔细考量。我个人的体会是前期多花时间在密钥管理、权限设计和网络测试上后期就能节省大量因部署失败而导致的排查和回滚时间。记住自动化不是为了炫技而是为了可靠和效率。一个稳定可靠的SSH连接就是你自动化部署流水线最坚实的底座。

相关新闻

多智能体AI模拟课堂:基于双系统推理的教师认知训练系统

多智能体AI模拟课堂:基于双系统推理的教师认知训练系统

1. 项目概述:当AI走进物理课堂,一场关于“双系统思考”的探索 最近和几位师范院校的朋友聊天,他们都在感慨,现在的准教师培养,尤其是像物理这样的理科,越来越难了。难点不在于知识本身,而在于如…

2026/10/12 12:34:04 阅读更多 →
智能体图令牌推理:构建复杂任务的多智能体协作系统

智能体图令牌推理:构建复杂任务的多智能体协作系统

1. 项目概述:从“图”到“智能体”的推理新范式最近在跟几个做AI应用落地的朋友聊天,大家普遍有个感觉:大语言模型(LLM)的单次问答能力确实很强,但一遇到需要多步骤、长链条、依赖复杂上下文的任务&#xf…

2026/10/14 19:19:26 阅读更多 →
从“盐井虾”引发的系统崩溃看用户输入处理:编码、清洗与规范化实战

从“盐井虾”引发的系统崩溃看用户输入处理:编码、清洗与规范化实战

最近在开发一个基于用户行为分析的推荐系统时,遇到了一个非常典型的“装呗失败”场景:我精心设计了一套复杂的协同过滤算法,准备在团队分享会上大展身手,结果在演示环节,一个看似简单的数据预处理步骤——处理用户昵称…

2026/10/7 11:29:57 阅读更多 →

最新新闻

从线上事故到生产级Celery定时任务体系搭建实战

从线上事故到生产级Celery定时任务体系搭建实战

1. 从一次线上事故说起:为什么我最终选了Celery做定时任务去年冬天的一个凌晨,我被报警电话吵醒。一个跑了半年的数据同步脚本突然不执行了,导致下游三个业务模块的数据全部延迟了六个小时。排查下来原因很朴素:那台服务器上跑着七…

2026/10/15 10:40:42 阅读更多 →
CDM-625卫星调制解调器手册解析:CnC载波叠加与LDPC编码实战

CDM-625卫星调制解调器手册解析:CnC载波叠加与LDPC编码实战

简介:《CDM-625汉译版》是高级卫星调制解调器技术手册的 PDF 文档,主要面向卫星通信系统工程师、网络规划人员、电信运营商及对宽带卫星通信感兴趣的从业者。文档以双端对讲载波内载波(DoubleTalk Carrier-in-Carrier)带宽压缩技术…

2026/10/15 10:40:42 阅读更多 →
CAD-Skills:基于GitHub的可验证工程语义建模范式

CAD-Skills:基于GitHub的可验证工程语义建模范式

1. 这不是“AI画图”,而是CAD设计范式的悄然迁移最近在GitHub上刷到一个叫CAD-Gen的开源项目,Star数两周破3000,讨论区里工程师们发的不是截图,是CAD图纸生成日志——带时间戳、参数表、几何约束验证结果。标题里说的“AI直接画CA…

2026/10/15 10:40:42 阅读更多 →
代码之外的瓶颈:工程师如何突破技术决策与协作困局

代码之外的瓶颈:工程师如何突破技术决策与协作困局

前阵子和一个工作六年的老同事聊职业发展,他的一句话让我印象很深:“现在写代码对我来说不是难题,难的是写完之后那一堆破事。”这位老哥属于典型的技术骨干,框架源码看得飞起,线上问题排查稳准狠,可近几年…

2026/10/15 10:40:42 阅读更多 →
SID‑History 攻击剖析:低权限账号横向接管域林的利用与检测

SID‑History 攻击剖析:低权限账号横向接管域林的利用与检测

🔒免责声明:本文仅供授权渗透测试、红蓝对抗、安全运维学习,全部实验操作务必在自建隔离靶场完成。未经授权对内网 AD 域、域林环境实施攻击属于违法行为,请严格遵守网络安全法律法规。 前言 SID‑History(SID 历史&a…

2026/10/15 10:40:42 阅读更多 →
SpringBoot+Vue医院预约挂号系统设计与优化

SpringBoot+Vue医院预约挂号系统设计与优化

1. 项目概述:现代化医疗预约解决方案这个基于SpringBootVue的医院预约挂号系统,是我去年为某三甲医院信息化改造设计的核心模块。传统医疗机构的预约挂号流程普遍存在页面卡顿、数据不同步、操作繁琐等问题,而采用前后端分离架构后&#xff0…

2026/10/15 10:39:41 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战: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/15 0:14:36 阅读更多 →
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/15 9:49:14 阅读更多 →