SSH远程登录Linux实战:从原理到密钥配置和故障排查
搞Linux的朋友几乎都绕不开一个问题怎么把远在机房、云端甚至客厅角落的Linux服务器“抓”到自己电脑面前来操作。SSHSecure Shell就是干这件事的标准答案。它把本地终端和Linux服务器之间的网络通信放进一条加密隧道让你在任意一台能联网的电脑上远程登录Linux执行命令、改配置、部署程序跟坐在服务器前面操作几乎没有区别。这篇文章我打算按自己平时实操的习惯把SSH远程登录的完整链路从头捋一遍重点讲原理、命令、密钥配置和排错希望能帮刚开始接触的朋友少走点弯路。我最早用SSH是刚参加工作那会儿公司给了一台云服务器只有IP和一个密码当时连“端口”这个概念都没搞清直接在命令行敲了ssh rootIP试了半天。后来慢慢踩了各种坑才意识到SSH这东西看着简单真正用顺需要理解几个关键点。它不只用于云服务器运维还覆盖内网虚拟机、树莓派、ARM开发板、嵌入式设备调试等场景。开发者用VS Code的Remote-SSH写代码运维批量管理上百台机器底层都是同一个SSH协议。对新手来说SSH是迈过Linux门槛后最值得先掌握的能力之一对老手来说SSH配置是否顺手直接决定日常干活幸福感。下面我按一条完整的排障和实战链路来讲从原理到落地一步步拆开。1. SSH远程登录解决什么问题场景与安全原理1.1 远程管理Linux的典型应用场景先想清楚SSH解决什么问题后面学起来就不容易跑偏。我平时接触最多的是三类场景。第一类是云服务器和物理服务器。从云平台买了一台Linux实例只有公网IP和账号密码人在本地电脑上通过ssh userip就能管理。无论人在办公室还是家里只要网络能通就相当于坐在这台机器前。第二类是本地虚拟机和开发板。VMware或VirtualBox里跑一个Ubuntu或CentOS用SSH连接比在虚拟机窗口里操作舒服太多复制粘贴、文件传输、多窗口并行都更顺手树莓派这类设备经常不接显示器把SSH一开用电脑就能干活。第三类是嵌入式Linux设备。很多开发板出厂自带SSH服务开发调试时远程登录比串口终端方便得多日志、命令、文件的传递效率都很高。这三种场景表面差别很大本质却是一样的本地终端加远端主机加网络通信。SSH要负责把三者安全地串起来。理解了这个模型你就知道为什么云服务器要开安全组端口、为什么虚拟机要配网络模式、为什么开发板要接路由器了——目的都是让“网络通信”这个环节先能走通。1.2 为什么是SSHTelnet和FTP为什么被淘汰有人会问网络通信不加密行不行早年Telnet就是这么干的用户名、密码、命令全部明文传输。在局域网里用抓包工具一抓眼睛都不用眨所有东西全暴露。FTP传账号密码同样不安全。在现在的网络环境下明文协议基本等同于裸奔所以SSH取代Telnet成为远程登录事实标准。SSH的安全逻辑可以拆成三步来理解。第一步客户端和服务端建立连接后先协商出一把对称密钥之后所有数据用这把密钥加密别人即使截获数据包也看不懂内容。第二步服务端会给出自己的主机指纹客户端首次连接时会显示一串字符让你确认相当于验证“对面这台机器确实是我要连的那台”防止中间人冒充服务器。第三步登录时通过密码或密钥完成身份认证确认“你是被允许进入的人”。三步下来传输内容、服务器身份、用户身份都得到了保障。这里插一句我自己的观点SSH的配置难度比很多网文写得要高一点因为坑基本不在命令本身而在网络环境、权限和系统策略上。所以后面我会用大量真实场景来讲配置和排错。2. 环境准备安装OpenSSH服务端与选择客户端工具2.1 服务端OpenSSH安装与启动SSH服务端一般就是OpenSSH里的sshd进程。绝大多数Linux发行版默认装了客户端但服务端未必装。以Ubuntu/Debian为例我通常直接执行sudo apt update sudo apt install -y openssh-serverCentOS/RHEL 8的包名也一样用sudo yum install -y openssh-server装完把服务拉起来并设为开机自启sudo systemctl enable --now ssh注意服务名的差异Ubuntu上服务名叫sshCentOS/RHEL上叫sshd。有的系统两个名字都存在没关系。启动后看一眼端口有没有监听ss -tlnp | grep :22如果看到LISTEN状态说明服务端正常。改过配置后最常用的重载命令是sudo systemctl restart ssh为什么用systemctl而不是service现在主流发行版都由systemd管理服务systemctl既能看状态、又能设置开机自启、还能打印详细报错排错信息远比旧命令清楚。建议装完先本机回环测试一遍ssh localhost本机都登不上说明服务端有问题先别急着怪网络。另外服务器端的运行日志是排错的第一手资料。Debian/Ubuntu看/var/log/auth.logCentOS/RHEL看/var/log/secure。日志里会明确记录每次SSH连接的来源、账号、认证结果和失败原因后面排查认证问题时这里就是首选入口。2.2 客户端工具怎么选命令行还是GUISSH客户端几乎每台设备都有。Linux和macOS直接在终端敲ssh命令Windows 10和Windows 11也自带OpenSSH客户端在PowerShell或CMD里就能用。习惯图形界面的朋友我用得最多的是MobaXterm。它是我在Windows上非常喜欢的终端工具支持SSH、SFTP文件传输、端口转发颜色配置舒服连接多了还能分组管理。开发场景我会用VS Code的Remote-SSH插件在编辑器里直接打开远程目录改代码补全、跳转、调试都跟本地一样。这两个工具面向的是不同需求纯运维用MobaXterm更直接写代码用VS Code更顺手。但要澄清一个概念不管用什么客户端底层连接协议都是SSH工具只是把终端和文件管理做成了图形界面该配的IP、用户名、端口、密钥一个都不能少。所以我建议新手先用命令行把原理跑通再用工具提升效率。命令行会了任何GUI工具都是“套了个壳”看两分钟就会而且遇到问题能更快回到本质上去排查。3. 实操核心密码登录、密钥免密与多主机批量管理3.1 第一次远程登录的完整操作假设服务端IP是192.168.1.100用户名是ubuntu端口默认22。连接命令如下ssh ubuntu192.168.1.100如果端口不是22比如改成了2222ssh -p 2222 ubuntu192.168.1.100首次连接时终端会提示你确认主机指纹界面大概长这样The authenticity of host 192.168.1.100 (192.168.1.100) cant be established. ECDSA key fingerprint is SHA256:xxxx... Are you sure you want to continue connecting (yes/no)?这里输入yes回车这台主机的指纹会被写入当前用户的~/.ssh/known_hosts文件以后再连就不会重复提示。接着输入密码注意输入密码的过程中屏幕不会显示任何字符也不会有圆点占位符这是正常现象不是键盘坏了。回车后出现远程系统的提示符说明登录成功。退出远程连接用exit或logout也可以按CtrlD。实际工作中我习惯开两个终端一个挂着远程环境一个留在本地查资料和传命令效率会高很多。还有个小细节ssh命令后面不指定用户名时会默认使用当前本地用户名比如本地用户是zhangsan执行ssh 192.168.1.100就相当于ssh zhangsan192.168.1.100这个默认行为经常导致新手连不上时一头雾水。3.2 配置SSH密钥免密登录密码登录每次都要敲密码而且密码在网络暴力破解面前并不保险。更推荐的方式是密钥对认证。简单说本地生成一对密钥公钥放到服务器私钥留在本地。登录时服务端用公钥验证身份只有持有对应私钥的客户端才能通过。生成密钥的命令ssh-keygen -t ed25519 -C work-laptop-t ed25519指定用Ed25519算法比RSA短而且更安全-C是注释一般写用途方便日后识别。命令会问你保存路径默认是~/.ssh/id_ed25519直接回车即可。然后又问passphrase这是私钥本身的保护口令可以留空。我自己的习惯是个人电脑留空方便脚本和工具直接使用公司电脑会设置一个passphrase多一层保护。把公钥放到服务器上最简单的方法是用ssh-copy-idssh-copy-id -i ~/.ssh/id_ed25519.pub ubuntu192.168.1.100它会提示输入一次服务器密码然后自动把公钥追加到服务器的~/.ssh/authorized_keys文件里。有些系统没装ssh-copy-id那就手动执行cat ~/.ssh/id_ed25519.pub | ssh ubuntu192.168.1.100 mkdir -p ~/.ssh chmod 700 ~/.ssh cat ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys注意权限必须严格权限过宽的时候SSH会拒绝使用这个文件。.ssh目录应该是700authorized_keys文件是600私钥文件是600公钥是644。我把常见权限整理成下表方便对照路径或文件推荐权限说明~/.ssh 目录700目录权限过宽会被SSH拒绝~/.ssh/authorized_keys600只允许属主读写~/.ssh/id_ed25519600私钥不能泄露~/.ssh/id_ed25519.pub644公钥可以公开配置好之后执行ssh ubuntu192.168.1.100只要能匹配到私钥就不再问密码了。我在云服务器上都是服务器开好之后第一件事就是配密钥密码登录只作为兜底甚至直接禁掉。3.3 用~/.ssh/config管理多台机器与批量登录机器一多每次都敲完整IP加参数太痛苦。我强烈建议把连接信息写进配置文件~/.ssh/config每台机器一段配置块Host web1 HostName 192.168.1.100 User ubuntu Port 22 IdentityFile ~/.ssh/id_ed25519 Host web2 HostName 192.168.1.101 User root Port 2222 IdentityFile ~/.ssh/id_rsa保存之后直接执行ssh web1就连第一台ssh web2连第二台相当于给服务器取了个更容易记的别名。配置文件还支持通配符Host *可以在里面统一设置ServerAliveInterval之类的参数防止长时间没操作连接被中断。说到批量登录很多运维场景需要在几十台上执行同一条命令。SSH本身不支持并发批量但可以配合循环for host in web1 web2 web3; do ssh $host uptime; done用好密钥登录之后这种循环基本可以做到免交互。机器数量再多一些建议用Ansible这类自动化工具但底层走的还是SSH。理解这点你做批量操作的思路就清晰了不是SSH做不到而是你还没把连接配置统一抽出来管理。有时候我需要临时指定不同私钥就在命令里加-i参数例如ssh -i ~/.ssh/prod_rsa prod-user192.168.1.200这在工具默认密钥配错时非常管用。4. Linux ssh连接失败的常见报错与排错方法4.1 Connection refused服务端根本没有监听最常见的第一坑就是这个报错ssh: connect to host 192.168.1.100 port 22: Connection refused意思是客户端发起了TCP连接但服务器22端口没有服务在监听或者防火墙直接丢弃并拒绝了连接。排查顺序我一般这么走。第一步确认sshd状态sudo systemctl status ssh状态不是active (running)就先启动再看有没有报错信息。改了配置之后常用sudo systemctl restart ssh让它生效。第二步确认监听ss -tlnp | grep :22没有输出说明服务没起来有输出但客户端仍连不上十有八九是防火墙或云安全组的问题。第三步云服务器尤其注意安全组。我在腾讯云和阿里云上都遇到过类似情况系统里服务正常本地telnet一下22端口却没反应检查安全组才发现没放行。本地测试端口通常用telnet 192.168.1.100 22Windows没有telnet时可以用PowerShell的Test-NetConnection 192.168.1.100 -Port 22。这一步能很快把问题定到“服务端”还是“网络层”。4.2 Permission denied / Authentication failed认证失败的三种原因错误提示形如Permission denied, please try again.或者ubuntu192.168.1.100: Permission denied (publickey,password).原因通常有三种。第一种是密码真不对检查大小写、特殊字符和键盘输入法状态。第二种是服务端策略禁止当前用户登录例如sshd_config里写了PermitRootLogin no禁止root远程登录或者AllowUsers列表里没包含这个用户。第三种是密钥认证失败比如私钥权限过宽被拒绝、公钥没配好、IdentityFile指定错了私钥。查日志是最快路径。Debian/Ubuntu看/var/log/auth.logCentOS/RHEL看/var/log/securesudo tail -n 50 /var/log/auth.log | grep -i ssh日志里会明确写invalid password、prohibited by policy等关键词照着解决即可。我遇到过一个比较隐蔽的情况authorized_keys文件权限是644SSH为了安全直接忽略了这个文件日志里没有任何“公钥已接受”的记录。把权限改成600后立刻就能登录。这种问题不看权限设置很难想到。4.3 Host key verification failed主机指纹不匹配这个报错第一次遇到的人通常会慌因为它长得很吓人 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 意思是本地~/.ssh/known_hosts里存的服务器指纹和这次连接时服务器提供的指纹对不上。最常见的原因是服务器重装了系统OpenSSH重新生成了主机密钥也可能这台服务器的IP被分配给了另一台机器。这正是SSH防中间人机制在起作用本质上是好事说明它没有默认放行异常连接。但真实场景中如果你确认服务器没有异常只需要手动清除旧指纹ssh-keygen -R 192.168.1.100如果端口不是22需要用[HOST]:PORT的形式比如[192.168.1.100]:2222。清除后再重新连接确认一次新指纹即可。这里我不建议直接删掉整个known_hosts文件因为那会连带丢失其他正常服务器的指纹把安全防线一下子全拆了得不偿失。4.4 连接超时网络根本没有通如果报错不是Connection refused而是ssh: connect to host 192.168.1.100 port 22: Connection timed out说明客户端发出的包根本没被应答大概率是网络层的问题。本地虚拟机先确认IP地址和网卡模式桥接、NAT、仅主机三种模式对外可见性不一样云服务器百分之八九十是安全组没放行或者服务器内部防火墙拦截了端口。我本地测试端口连通性的命令是nc -vz 192.168.1.100 22或者用telnet。公网服务器如果Ping不通但端口通很可能是对方禁了ICMP协议不用太纠结如果端口也不通基本可以断定被防火墙或安全组拦了。我踩过的一个坑是云控制台安全组已经放行但服务器内部ufw没放行导致服务在监听、外部却连不上。这类问题要端到端排查别只盯着一端反复换参数。4.5 Win10远程连接Ubuntu 22.04的几个专项坑Windows 10连Ubuntu 22.04是最近被问得最多的一组搭配。先给结论Win10自带OpenSSH客户端在PowerShell或CMD里直接ssh就能连。如果提示找不到ssh命令去“设置-应用-可选功能”里安装OpenSSH客户端即可。Ubuntu 22.04默认配置有几个特点要注意。第一sshd服务默认没装需要sudo apt install openssh-server装完再sudo systemctl enable --now ssh。第二默认PermitRootLogin prohibit-password意思是root账号不可以用密码登录但可以用密钥登录。新手拿root账号密码连不上不一定是密码错了而是策略直接不允许密码认证。我更推荐先用一个有sudo权限的普通用户登录需要root权限时再执行sudo su -这样既安全又灵活。还有一个细节改完/etc/ssh/sshd_config之后Ubuntu 22.04有时会因为配置语法问题导致restart失败。记得先执行sudo sshd -t检查语法通过后再重启。systemctl status ssh看到的错误信息要逐字读很多问题出在配置文件的空行、注释和多余空格上这类小坑排查起来最费时间。5. 登录安全加固与高效使用技巧5.1 登录安全三板斧改端口、禁root、禁密码服务器正式上线后我一般会做三层安全加固。第一层把默认端口22改成一个不常用的高位端口比如22022能显著减少全网扫描流量命中。改端口要同步修改sshd_config里的Port字段还要让防火墙和安全组放行新端口。第二层禁用root直接登录在sshd_config里写PermitRootLogin no平时用普通用户加sudo。第三层密钥配置好之后把PasswordAuthentication no设置上只允许密钥认证密码认证直接关闭。改完任何sshd_config内容一定先做语法检查sudo sshd -t sudo systemctl restart ssh然后千万不要立刻关掉当前已经连接的窗口而是新开一个终端测试新配置能登录后再退出。否则一旦配置写错你就把通向服务器的唯一一扇门从外面锁死了。这个提醒是我自己的血泪经验真发生过一次配置改错导致只能去云平台控制台重置系统。另外建议装fail2ban它会监听SSH日志连续失败几次自动封禁来源IP对付暴力破解很有效。对于暴露在公网上的服务器这层防护值得加。5.2 避免网络波动断开连接tmux和screen远程登录最烦的事就是跑一个长时间编译任务时网络稍微波动SSH一断任务也跟着没了功亏一篑。解决办法是先开tmux或screen在会话里面干活。tmux用法很简单tmux new -s work进去之后该干嘛干嘛。如果SSH断了重新登录后执行tmux attach -t work之前跑的任务还在原地等你终端状态也保留着。平时也可以用tmux分屏左边看日志右边敲命令比来回切换窗口舒服太多。screen的用法类似但我更推荐tmux因为它的窗口管理、分屏和复制模式都更符合现代终端的使用习惯。我在管理嵌入式开发板和生产服务器时几乎每次长任务都会挂tmux。这个习惯不仅防断线还能在你临时有事退出时保留现场回来之后接着干活对调试和分析问题非常有价值。5.3 我的一些日常使用心得收个尾。我自己的习惯是所有服务器统一用密钥登录连接参数写进~/.ssh/config长任务挂tmux改sshd_config之前先备份一份改完先sshd -t再重启测试通过前绝不关旧连接。要是你刚上手SSH别被那一堆参数吓到。真正要理解的核心只有三点连的是哪台机器、以谁的身份登录、用什么方式验证身份。把这三个问题搞清楚了SSH对你来说就没有秘密可言。实际使用中还有个特别实用的小技巧如果同一台服务器有不同的账号或端口我会在Host别名上做区分比如web1-root和web1-ops一条ssh命令就能切换不同身份长期下来连接效率提升非常明显。先从小环境练起慢慢把整个链路跑顺后面管理再多机器都不会乱。

相关新闻

Linux内核内存管理:Slab与Slub分配器原理及排查实战

Linux内核内存管理:Slab与Slub分配器原理及排查实战

1. 为什么Buddy System之外,内核还要再养一个分配器在Linux内核里,内存管理虽然从Buddy System(伙伴系统)开始,但实际工作中你几乎不会直接向它申请小内存。我见过不少刚接触内核的人去看alloc_pages,然后疑…

2026/10/9 3:30:12 阅读更多 →
HTTP错误状态码实战排查手册:4xx/5xx定位与解决方案

HTTP错误状态码实战排查手册:4xx/5xx定位与解决方案

接手线上问题的时候,我最先问的一句话永远是:状态码是多少?先别急着甩日志,也别让用户一遍遍复现,“HTTP错误状态码”就是服务器给我们的第一句人话——它直接告诉你请求死在了哪个环节。这篇文章我把实战里最常遇到的…

2026/10/9 3:30:12 阅读更多 →
ONS15454配置指南:单板识别与电路创建,从时隙到SNCP保护

ONS15454配置指南:单板识别与电路创建,从时隙到SNCP保护

简介:这是面向光网络运维与工程人员的一份思科ONS15454 SDH配置教学课件,聚焦同步数字体系设备的基础配置场景。内容系统覆盖客户端端口定义与SFP模块激活、STM-1/STM-4/STM-16端口类型选择、用户电路创建中的高阶电路(VC_HO_PATH_CIRCUIT&am…

2026/10/9 3:29:11 阅读更多 →

最新新闻

Agent-Reach 深度解析:Python 构建 CLI 型 AI Agent 的工具调用与避坑指南

Agent-Reach 深度解析:Python 构建 CLI 型 AI Agent 的工具调用与避坑指南

1. 从"Agent-Reach"这个名字说起:它到底想解决什么问题第一次看到"Agent-Reach"这个项目名,我的直觉是:这大概率是一个围绕 AI Agent 能力边界扩展的工具,而不是又一个"套壳聊天机器人"。原因很简单…

2026/10/9 4:02:30 阅读更多 →
Python随机点名器实战:random模块与Tkinter从命令行到GUI

Python随机点名器实战:random模块与Tkinter从命令行到GUI

太好玩了!用Python实现随机点名器,课堂/会议都能用昨天下午最后一节课,我站在讲台上对着花名册喊了三遍“王磊”都没人应,底下一片窃笑——这小子猫在最后一排打盹儿。那一刻我意识到,传统的按花名册顺序点名&#xff…

2026/10/9 4:02:30 阅读更多 →
Agent-Reach CLI工具实战:Python构建AI Agent外部触达能力

Agent-Reach CLI工具实战:Python构建AI Agent外部触达能力

1. 项目缘起与核心定位第一次看到 Agent-Reach 这个标题,我下意识把它拆成了两个部分:Agent 和 Reach。Agent 在当下的技术语境里几乎等同于“能自主干活的智能体”,而 Reach 这个词很有意思,它既可以理解为“触达”,也…

2026/10/9 4:02:30 阅读更多 →
上周最后一天怎么算?Python、SQL、Shell多语言日期计算实战

上周最后一天怎么算?Python、SQL、Shell多语言日期计算实战

你有没有遇到过这样的需求:做报表统计、任务调度或者数据清洗时,经常要算“上周最后一天”。听起来特别简单,不就是减几天的事嘛,可实际动手时,今天周几、系统时区、跨月月初这些因素混在一起,很容易把人绕…

2026/10/9 4:02:30 阅读更多 →
电商数据分析必修课:从数据获取到合规采集的完整指南

电商数据分析必修课:从数据获取到合规采集的完整指南

做电商数据分析这些年,我最深的一个体会是:真正卡住分析进度的往往不是算法模型,而是数据本身。销售报表要出数,运营要复盘,管理层要决策,结果第一步“数据获取”就出各种幺蛾子——要么字段对不上&#xf…

2026/10/9 4:02:30 阅读更多 →
ASP.NET C# ERP源码二次开发:从部署到改造全流程实战

ASP.NET C# ERP源码二次开发:从部署到改造全流程实战

简介:这是一份面向.NET开发团队的ASP.NET C#大型综合管理系统源码包,定位于大型ERP与全能后台管理系统的项目样板,适合具备一定C#基础、希望直接参考完整工程结构或进行二次开发的中高级开发者。压缩包约52.88MB,以zip格式提供&am…

2026/10/9 4:01:29 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练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/7 13:34:55 阅读更多 →