appleboy/ssh-action 完全指南:用 GitHub Actions 安全执行远程 SSH 命令
CI/CD【免费下载链接】ssh-actionGitHub Actions for executing remote ssh commands.项目地址https://gitcode.com/gh_mirrors/ss/ssh-action点击查看免费下载本篇技术指南以开源仓库ssh-action即appleboy/ssh-action为核心系统讲解如何通过 GitHub Actions 在 CI/CD 流水线中安全地执行远程 SSH 命令。你将掌握该 Action 的全部 30 输入参数的含义与默认值、SSH 密钥与指纹验证的完整配置流程、多主机批量执行、代理跳板连接、环境变量传递等实战方案并深入理解其基于 Golang 与 drone-ssh 的底层运行机制可对照 action.yml 与 entrypoint.sh 源码验证。项目概览与运行原理ssh-action是一个专为 GitHub Actions 设计的复合compositeAction核心能力是在 CI 中执行远程 SSH 命令典型场景包括流水线部署服务器、批量重启服务、远程拉取镜像并滚动更新、跨多台机器执行运维脚本等。该项目使用 Golang 编写核心逻辑并构建在drone-ssh一个 Go 实现的 SSH 命令行工具之上。从 action.yml 可以确认其运行方式runs.using: composite以复合 Action 形式运行兼容各主流 runner第一步将$GITHUB_ACTION_PATH写入$GITHUB_PATH使 Action 目录内的二进制可直接被调用第二步执行 entrypoint.sh并把所有inputs以INPUT_*前缀的环境变量注入脚本例如INPUT_HOST、INPUT_KEY、INPUT_SCRIPT等。真正的 SSH 执行逻辑并不在本仓库的 Shell 脚本里而是由 entrypoint.sh 在运行时动态下载对应平台与架构的drone-ssh二进制默认版本1.8.0再委托它完成连接与命令执行。该脚本通过uname -s与uname -m检测运行环境支持 Linux / Darwin / Windows 与 amd64 / arm64并从 release 地址拉取drone-ssh-version-platform-arch二进制后执行。输入参数全解ssh-action的所有配置均通过with:传入。下表完整列出 README 与 action.yml 中定义的全部输入参数、用途与默认值输入参数描述默认值hostSSH 主机地址多个主机用逗号分隔无portSSH 端口号22passphraseSSH 私钥的密码短语保护私钥用无usernameSSH 登录用户名无passwordSSH 密码无protocolSSH 协议版本可选tcp、tcp4、tcp6tcpsync多主机时是否同步执行falseuse_insecure_cipher是否启用更多含不安全的加密算法falsecipher允许的加密算法列表未指定时使用合理默认值无timeout建立 SSH 连接的超时时间30scommand_timeoutSSH 命令执行的超时时间10mkeySSH 私钥内容例如~/.ssh/id_rsa的原始内容无key_pathSSH 私钥文件路径无fingerprint主机公钥的 SHA256 指纹无proxy_hostSSH 代理主机地址无proxy_portSSH 代理端口22proxy_protocol代理协议版本可选tcp、tcp4、tcp6tcpproxy_username代理主机用户名无proxy_password代理主机密码无proxy_passphrase代理私钥的密码短语无proxy_timeout连接代理主机的超时时间30sproxy_key代理主机私钥内容无proxy_key_path代理主机私钥路径无proxy_fingerprint代理主机公钥的 SHA256 指纹无proxy_cipher代理允许的加密算法无proxy_use_insecure_cipher代理是否启用更多含不安全加密算法falsescript要执行的命令可多行无script_path从文件执行命令文件相对仓库根目录的路径无envs传递到远端 shell 脚本的环境变量逗号分隔无envs_format环境变量值传递方式的灵活配置无debug启用调试模式falseallenvs把前缀为GITHUB_和INPUT_的所有环境变量传给脚本falserequest_pty向服务器请求伪终端PTYfalsecapture_stdout捕获命令标准输出并写入stdout输出false小细节README 输入参数表中写作script_file但 action.yml 中实际定义的输入名是script_pathREADME 示例代码script_path: scripts/script.sh也使用script_path。从源码结构看表格中的script_file应为笔误配置时请以script_path为准。除上述输入外该 Action 还声明了一个输出见 action.ymlstdout执行命令的标准输出。需要先设置capture_stdout: true随后可通过${{ steps.step_id.outputs.stdout }}在后续步骤中读取例如将远端命令结果写入 issue 评论或通知。快速上手最小可运行示例以下是最基础的用法——通过密码认证远程执行一条命令。将HOST、USERNAME、PASSWORD、PORT存入仓库 Settings → Secrets and variables → Actions 的 Secrets 中name: remote ssh command on: [push] jobs: build: name: Build runs-on: ubuntu-latest steps: - name: executing remote ssh commands using password uses: appleboy/ssh-actionv1.2.0 with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} password: ${{ secrets.PASSWORD }} port: ${{ secrets.PORT }} script: whoami运行后Action 日志会输出类似如下的结果CMD whoami END linuxserver.io ✅ Successfully executed commands to all hosts. 日志中CMD与END之间是本次实际执行的命令✅ Successfully executed commands to all hosts.表示全部主机执行成功。如果任一主机失败Action 将以非零状态退出流水线会标记为失败。前置准备配置 SSH 密钥相比密码认证私钥认证更安全、更适合长期自动化。README 强调的最佳实践是在本地机器而非远程机器上生成密钥并使用 GitHub Secrets 中指定的用户名登录。生成 RSA 密钥ssh-keygen -t rsa -b 4096 -C your_emailexample.com生成 ed25519 密钥ssh-keygen -t ed25519 -a 200 -C your_emailexample.com将公钥写入远程主机的授权密钥将新生成的公钥追加到远程用户的authorized_keyscat .ssh/id_rsa.pub | ssh bB cat .ssh/authorized_keyscat .ssh/id_ed25519.pub | ssh bB cat .ssh/authorized_keys复制私钥内容并存入 GitHub Secrets以 macOS / Ubuntu 为例将私钥原文复制到剪贴板# macOS pbcopy ~/.ssh/id_rsa # Ubuntu需先安装 xclip sudo apt-get install xclip xclip ~/.ssh/id_rsaed25519 私钥同理# macOS pbcopy ~/.ssh/id_ed25519 # Ubuntu xclip ~/.ssh/id_ed25519随后把复制到的私钥内容粘贴为 GitHub Secrets例如命名为KEY供 workflow 中key: ${{ secrets.KEY }}引用。务必不要把私钥明文写死在 workflow 文件里。权限与兼容性注意事项根据 README 中读者的补充经验部分 SSH 版本还需要将公钥放入.ssh/authorized_keys2将.ssh目录权限改为700将.ssh/authorized_keys2权限改为640。如果你使用 OpenSSH 并遇到如下报错ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey]说明服务端不支持你选择的密钥算法。在 Ubuntu 20.04 及更高版本中需要显式允许ssh-rsa算法请在 OpenSSH 服务端配置文件/etc/ssh/sshd_config或/etc/ssh/sshd_config.d/下的附加文件中添加CASignatureAlgorithms ssh-rsa或者直接改用 OpenSSH 默认接受的ed25519密钥生成命令见上文。实战场景一使用私钥认证执行命令- name: executing remote ssh commands using ssh key uses: appleboy/ssh-actionv1.2.0 with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.KEY }} port: ${{ secrets.PORT }} script: whoami如果私钥存放在仓库文件中不推荐但用于本地自托管 runner 调试可行也可以改用key_path指向仓库内的密钥文件路径。实战场景二一次执行多条命令script支持多行块逐行作为 shell 命令在远端执行- name: multiple command uses: appleboy/ssh-actionv1.2.0 with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.KEY }} port: ${{ secrets.PORT }} script: | whoami ls -al执行结果类似下图所示每条命令的输出会依序打印在日志中实战场景三从文件执行命令当命令较多或需要统一维护时可以把命令写入仓库中的脚本文件例如scripts/script.sh再通过script_path指定- name: file commands uses: appleboy/ssh-actionv1.2.0 with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.KEY }} port: ${{ secrets.PORT }} script_path: scripts/script.sh仓库中的 testdata/test.sh 即是一个极简示例内容为whoami可用于验证从文件执行命令的工作方式。实战场景四多主机批量执行host参数支持逗号分隔的多个主机一条 workflow 即可把相同命令批量下发到所有机器- name: multiple host uses: appleboy/ssh-actionv1.2.0 with: - host: foo.com host: foo.com,bar.com username: ${{ secrets.USERNAME }} key: ${{ secrets.KEY }} port: ${{ secrets.PORT }} script: | whoami ls -al默认情况下所有主机共用同一个port默认22。如果各主机端口不同可以在每个主机名后用冒号指定端口- name: multiple host uses: appleboy/ssh-actionv1.2.0 with: - host: foo.com host: foo.com:1234,bar.com:5678 username: ${{ secrets.USERNAME }} key: ${{ secrets.KEY }} script: | whoami ls -al同步执行与失败语义默认sync: false时多主机之间是异步并发执行的适合主机数量多、彼此无依赖的场景若需要在主机间保持确定性的执行顺序或希望任一主机失败后立即中断可开启同步执行- name: multiple host uses: appleboy/ssh-actionv1.2.0 with: host: foo.com,bar.com sync: true username: ${{ secrets.USERNAME }} key: ${{ secrets.KEY }} port: ${{ secrets.PORT }} script: | whoami ls -al实战场景五向远端脚本传递环境变量有时需要把 CI 上下文如 commit SHA、分支名、构建产物路径注入远端脚本。做法分两步在 job 的env:中定义变量再在with.envs中列出要传递的变量名逗号分隔- name: pass environment uses: appleboy/ssh-actionv1.2.0 env: FOO: BAR BAR: FOO SHA: ${{ github.sha }} with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.KEY }} port: ${{ secrets.PORT }} envs: FOO,BAR,SHA script: | echo I am $FOO echo I am $BAR echo sha: $SHA注意env:对象中的每个变量都必须以字符串形式传递传入Integer或其他数据类型可能产生意外结果例如被拼接为额外字符。如需把 CI 的所有GITHUB_*、INPUT_*环境变量整体透传可设置allenvs: true它会将带有GITHUB_和INPUT_前缀的全部环境变量传给远端脚本适用于调试与需要完整上下文的场景。实战场景六通过代理主机跳板机连接当目标服务器处于内网、必须经跳板机访问时可以使用proxy_*系列参数。README 先用~/.ssh/config中的ProxyCommand示意链路Laptop -- Jumphost -- FooServerHost Jumphost HostName Jumphost User ubuntu Port 22 IdentityFile ~/.ssh/keys/jump_host.pem Host FooServer HostName FooServer User ubuntu Port 22 ProxyCommand ssh -q -W %h:%p Jumphost等价地在 GitHub Actions 的 YAML 中直接声明代理参数即可无需依赖本机~/.ssh/config- name: ssh proxy command uses: appleboy/ssh-actionv1.2.0 with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.KEY }} port: ${{ secrets.PORT }} proxy_host: ${{ secrets.PROXY_HOST }} proxy_username: ${{ secrets.PROXY_USERNAME }} proxy_key: ${{ secrets.PROXY_KEY }} proxy_port: ${{ secrets.PROXY_PORT }} script: | mkdir abc/def ls -al代理侧同样支持proxy_password、proxy_passphrase、proxy_key_path、proxy_fingerprint、proxy_timeout默认30s、proxy_protocol默认tcp与proxy_use_insecure_cipher等完整认证参数基本能力与主连接一致。实战场景七保护私钥passphrase私钥通常由密码短语passphrase加密即使密钥文件因备份泄露或设备退役而流出攻击者也无法直接使用。若生成密钥时设置了 passphrase则在 Action 中通过passphrase传入- name: ssh key passphrase uses: appleboy/ssh-actionv1.2.0 with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.KEY }} port: ${{ secrets.PORT }} passphrase: ${{ secrets.PASSPHRASE }} script: | whoami ls -al实战场景八主机指纹验证防中间人攻击设置主机指纹验证可有效防范 Person-in-the-Middle中间人攻击。先获取目标主机的公钥指纹——现代 OpenSSH 版本默认的密钥类型为rsa自 5.1 起、ecdsa自 6.0 起、ed25519自 6.7 起。执行以下命令获取指纹按需把ed25519替换为服务器实际使用的密钥类型把example.com替换为你的主机ssh example.com ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key.pub | cut -d -f2把输出的 SHA256 指纹存入 Secrets再通过fingerprint传入- name: ssh key passphrase uses: appleboy/ssh-actionv1.2.0 with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.KEY }} port: ${{ secrets.PORT }} fingerprint: ${{ secrets.FINGERPRINT }} script: | whoami ls -al指纹校验不通过时连接将被拒绝这能显著提高自动化流水线的安全性。代理主机同样支持proxy_fingerprint做校验。进阶参数与高级输出除上述常用参数外还有几个适合特定场景的开关debug: true开启调试模式打印更详细的连接与执行日志便于排查认证失败、超时等问题request_pty: true向服务器请求伪终端PTY。部分需要 TTY 才能正确交互的命令如某些交互式安装脚本、sudo提示等需要开启timeout默认30s与command_timeout默认10m分别控制建立连接与单条命令执行的超时上限两者单位均为 Go duration 格式如30s、10m。对长任务如数据库迁移、镜像构建应适当调大command_timeoutcapture_stdout: true将命令标准输出写入 Action 的stdout输出见 action.yml后续步骤可用${{ steps.id.outputs.stdout }}读取。其底层实现位于 entrypoint.sh当该开关为true时脚本用 heredoc 把执行输出写入$GITHUB_OUTPUTstdoutEOF ... EOF以支持多行输出。源码级解读entrypoint.sh 的运行机制理解 entrypoint.sh 有助于排查各类玄学问题其核心流程如下环境准备脚本设置set -o errexit -o nounset -o pipefail并导出GITHUBtruedrone-ssh 以此识别自身运行在 GitHub Actions 环境中平台/架构探测优先使用SSH_CLIENT_OS/SSH_CLIENT_ARCH环境变量可自定义否则通过uname -s、uname -m推断支持 Linux / Darwin / Windows 与 amd64 / arm64遇到未知平台或架构会直接报错退出下载二进制以DRONE_SSH_RELEASE_URL默认指向 drone-ssh 的 release 下载地址和DRONE_SSH_VERSION默认1.8.0拼接出drone-ssh-version-platform-arch的下载 URL用curl -fsSL --retry 5下载到$GITHUB_ACTION_PATH并赋予执行权限执行命令先打印二进制版本号再运行drone-ssh完成 SSH 连接与脚本执行若capture_stdouttrue则通过tee将输出同时写入$GITHUB_OUTPUT。可以看到所有with:参数如INPUT_HOST、INPUT_SCRIPT都由 action.yml 以环境变量形式注入最终由 drone-ssh 解析消费。因此该 Action 的实际 SSH 能力由 drone-ssh 决定本仓库负责的是参数映射、二进制分发与 runner 适配。常见问题排查QA远端报 Command not found如 npm 或其他命令这是 GitHub Actions 类非交互式 shell 的经典问题。在许多 Linux 发行版中/etc/bash.bashrc会包含一段非交互式 shell 直接返回的逻辑# /etc/bash.bashrc # System-wide .bashrc file for interactive bash(1) shells. # To enable the settings / commands in this file for login shells as well, # this file has to be sourced in /etc/profile. # If not running interactively, dont do anything [ -z $PS1 ] return由于ssh-action以非交互式 shell 运行命令.bashrc里配置的 PATH 追加、别名、工具链初始化等都不会生效导致npm等命令找不到。两种解法注释掉/etc/bash.bashrc中提前return的那一行让非交互式 shell 也加载系统级配置在script中使用命令的真实绝对路径例如/usr/local/bin/npm绕过 PATH 依赖。总结与推荐配置模板ssh-action把GitHub Actions → 远端服务器的最后一公里封装成了声明式 YAML核心价值在于单条 workflow 即可完成多主机、多命令、代理跳板、环境变量注入与指纹校验的完整编排且无需在 CI 中维护 SSH 客户端细节。一个兼顾安全与可维护性的推荐模板私钥 指纹 超时控制- name: deploy via ssh uses: appleboy/ssh-actionv1.2.0 with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.KEY }} port: ${{ secrets.PORT }} fingerprint: ${{ secrets.FINGERPRINT }} timeout: 30s command_timeout: 10m script: | cd /srv/app git pull docker compose up -d --build更多细节可继续阅读本仓库的 action.yml参数与输出定义、entrypoint.sh运行机制以及 testdata/test.sh文件命令的最小示例项目脚本与文档均以 MIT License 发布可放心参考与二次封装。赞分享CI/CD【免费下载链接】ssh-actionGitHub Actions for executing remote ssh commands.项目地址https://gitcode.com/gh_mirrors/ss/ssh-action点击查看免费下载相关推荐【亲测免费】 GitHub Actions 中的SSH命令执行工具appleboy/ssh-action完全指南GitHub Actions 中的SSH命令执行工具appleboy/ssh action完全指南 项目介绍 appleboy/ssh action 是一个高CI/CDGitHub Actions 实现远程 SSH 命令执行的解决方案GitHub Actions 实现远程 SSH 命令执行的解决方案 1. 项目基础介绍 ssh action 是一个开源项目它基于 GitHub ActionCI/CDGitHub Actions SSH 远程命令执行常见问题解决方案GitHub Actions SSH 远程命令执行常见问题解决方案 基础介绍 本项目是一个开源项目它利用 GitHub Actions 实现了远程执行 SSHCI/CD上一篇Adobe-GenP 3.0完整指南技术原理与实战激活Adobe全家桶下一篇终极免费网盘直链下载助手八大平台一键获取真实下载地址的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Windows下用Docker部署n8n:本地自动化工作流实战指南

Windows下用Docker部署n8n:本地自动化工作流实战指南

1. 项目概述:先聊聊我为什么要在Windows上折腾n8n先交代一下背景。我平时的工作里经常要处理一些重复性的数据搬运,比如把某个系统导出的Excel表格清洗后同步到另一个平台,或者定时抓取几个监控接口的数据做成汇总信息推送出去。之前用的是某…

2026/10/15 20:41:18 阅读更多 →
Path of Building:离线POE build planner的DPS计算与天赋树规划指南

Path of Building:离线POE build planner的DPS计算与天赋树规划指南

Path of Building:离线POE build planner的DPS计算与天赋树规划指南 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding 赛季刚开,你把装备换了一套、…

2026/10/15 20:41:18 阅读更多 →
免费制作高质感电子邀请函:工具选择与排版全攻略

免费制作高质感电子邀请函:工具选择与排版全攻略

开头就不跟你客套了。身边经常有人问我邀请函怎么做,问的人多了我干脆把一路实测下来的方法整理成这套教程。不花一分钱、成品拿得出手这件事,我用实际项目验证过不止一次,无论是个人生日聚会、小型沙龙,还是团队内部年会、产品体…

2026/10/15 20:41:18 阅读更多 →

最新新闻

VirtualBox 7.x以上版本安装报Invalid installation directory问题解决

VirtualBox 7.x以上版本安装报Invalid installation directory问题解决

/* 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 21:25:40 阅读更多 →
第152篇 ViewModel 原理:旋转屏幕数据为何还用在哪些地方

第152篇 ViewModel 原理:旋转屏幕数据为何还用在哪些地方

先把结论放在前面:ViewModel 之所以能在配置变更后存活,靠的不是"框架魔法",而是 Activity 重建时由 ActivityThread 帮忙保留的一份"非配置实例"(NonConfigurationInstance)——旧 Activity 的 ViewModelStore 被塞进这个对象传给新 Activity,新 Ac…

2026/10/15 21:25:40 阅读更多 →
第158篇 Compose 重组原理:何时执行何时跳过

第158篇 Compose 重组原理:何时执行何时跳过

先把结论放在前面:Compose 的重组能跳过,靠的是"参数稳定性判定 + 编译器插入的依赖追踪"两件事。 编译器在编译期给每个 Composable 算出"读了哪些状态"的依赖集合,运行时状态变化时只把依赖它的重组作用域放进待执行队列;而"能否跳过整个 Compo…

2026/10/15 21:25:40 阅读更多 →
LangChain 缓存:同样的请求别反复花钱

LangChain 缓存:同样的请求别反复花钱

个人主页&#xff1a;> for_ever_love__ <&#xff08;欢迎各位大佬莅临&#x1f60a;&#xff09; 其他栏目: > 大模型开发从0到1 < 其他栏目: > iOS项目总结大全 < 其他栏目: > 我想学python了 < 其他栏目: > iOS UI < 文章目录LangChain 缓存…

2026/10/15 21:25:40 阅读更多 →
让 AI 每周交出项目报告:把跨系统更新整理成变化说明与风险清单

让 AI 每周交出项目报告:把跨系统更新整理成变化说明与风险清单

项目周报的难点&#xff0c;是解释“这一周改变了什么” 项目周报看起来只是每周写一次文档&#xff0c;实际却要回答几个彼此关联的问题&#xff1a;哪些工作完成了&#xff0c;哪些承诺发生了变化&#xff0c;哪些阻塞仍未解除&#xff0c;以及下周需要谁做决定。 这些信息…

2026/10/15 21:25:40 阅读更多 →
MateClaw DSH Runtime源码解析:如何用JSON-RPC把DeepSeek Harness变成受管理的外部推理循环

MateClaw DSH Runtime源码解析:如何用JSON-RPC把DeepSeek Harness变成受管理的外部推理循环

人工智能AI AgentAgent 工作流Agent 编排RAG工具调用后端前端 【免费下载链接】mateclaw &#x1f916; MateClaw — Your second brain with Multi-Agent Orchestration, MCP Protocol, Skills & Memory, Dream, and Multi-Channel Support. Built on Spring AI Alibaba. …

2026/10/15 21:24:38 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

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

周新闻

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

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

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

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

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

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

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

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

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

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 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 阅读更多 →