SSH密钥登录原理与实战:从密码到非对称加密的安全演进
1. SSH登录机制从“敲门”到“刷脸”的本质演变如果你用过Linux服务器或者Git那对SSH这个词肯定不会陌生。它就像一把万能钥匙能让你安全地进入远程计算机的世界。但很多人第一次接触SSH时往往会被两种登录方式搞懵一种是输入用户名和密码另一种则是用一串看起来像乱码的“密钥”。这背后的区别远不止是“输密码”和“不输密码”那么简单它更像是一个从“传统门锁”到“智能门禁”的进化史。简单来说密码登录是SSH最基础、最传统的认证方式它要求你每次连接时都提供正确的用户名和对应的密码。而密钥登录则是一种基于非对称加密技术的免密登录方式它通过一对数学上关联的密钥一个私钥自己保管一个公钥放在服务器上来完成身份验证无需记忆和传输密码。前者依赖“你知道什么”密码后者依赖“你拥有什么”私钥文件。在实际的生产环境、自动化脚本和追求高安全性的场景中密钥登录几乎是唯一的选择。接下来我们就深入这两种机制的内部看看它们是如何工作的以及为什么你应该尽快从密码登录切换到密钥登录。2. 密码登录传统门锁的运作原理与潜在风险密码登录是大多数人最直观的理解方式其过程和我们登录网站邮箱非常相似。但SSH协议下的密码登录远不止是“发送密码”那么简单它是一个在加密通道内进行的挑战-响应过程。2.1 密码登录的完整握手流程当你执行ssh userhostname并输入密码时背后发生了一系列复杂的交互TCP连接建立你的SSH客户端比如终端里的ssh命令、PuTTY或VSCode的Remote-SSH插件会先与服务器的22端口默认建立TCP连接。协议版本协商客户端和服务器交换各自支持的SSH协议版本如SSH-2.0并达成一致使用哪个版本。目前绝大多数环境都已使用更安全的SSH-2。密钥交换与加密通道建立这是SSH安全的核心。双方会使用Diffie-Hellman密钥交换算法在不安全的网络上协商出一个只有双方知道的“会话密钥”。这个密钥用于后续所有通信的对称加密如AES确保传输内容即使被截获也无法被破解。此时一条安全的加密隧道已经建立但你的身份还未被验证。用户认证请求客户端通过已建立的加密通道向服务器发送认证请求声明要使用“password”认证方法。密码挑战与传输服务器收到请求后会提示客户端输入密码。你输入的密码并不是以明文形式直接发送而是会经过一个加盐Salt处理并与当前会话的ID等数据混合生成一个“密码证明”再通过之前建立的加密通道发送给服务器。服务器端验证服务器收到“密码证明”后会使用本地存储的密码哈希值通常存储在/etc/shadow文件中进行校验。如果匹配则认证成功。会话开启认证成功后服务器会为这个连接启动一个用户shell如bash或执行你指定的命令你便可以开始操作了。整个过程密码本身并未在网络中“裸奔”而是被包裹在双重保护中先是经过哈希处理变成“证明”再通过加密隧道传输。这比早期的Telnet等明文协议安全了无数倍。2.2 密码登录的“阿喀琉斯之踵”尽管有加密保护密码登录依然存在几个难以根除的固有风险暴力破解与字典攻击这是最大的威胁。攻击者可以通过自动化脚本以极高的频率尝试各种用户名和密码组合。如果服务器密码强度不够如短密码、常见单词被攻破只是时间问题。即使有失败锁定机制如fail2ban在攻击者使用分布式IP的情况下防护效果也会大打折扣。密码管理负担你需要为每台服务器记忆不同的、高强度的密码。在拥有数十上百台服务器的运维场景中这几乎是不可能的任务最终往往导致密码复用或简化进一步降低安全性。中间人攻击MITM风险虽然SSH-2协议通过密钥交换和主机密钥验证极大地缓解了此问题但在用户首次连接一台新服务器时如果盲目接受其主机密钥指纹仍存在被中间人劫持的风险。攻击者可以伪装成目标服务器诱使你输入密码。不适合自动化任何需要无人值守运行的脚本或工具如CI/CD流水线中的部署脚本、定时备份任务都无法使用交互式的密码登录。注意很多新手在VSCode连接远程服务器或使用Git时遇到的“密码错误”问题除了真输错密码外还可能是因为服务器禁用了密码登录PasswordAuthentication no或者用户名不对比如服务器禁止root直接登录。此时错误信息可能具有迷惑性。3. 密钥登录基于非对称加密的“数字通行证”密钥登录彻底改变了认证模式。它不依赖于一个共享的秘密密码而是基于非对称加密公钥加密体系。这套体系包含一对密钥私钥相当于你的身份证原件或家门钥匙。必须绝对私密地保存在你的本地机器上绝不能泄露给任何人。通常是一个名为id_rsa、id_ed25519的文件。公钥相当于你的身份证复印件或锁芯。可以公开地放置在任何你想登录的服务器上。通常内容是一长串以ssh-rsa AAAAB3Nza...或ssh-ed25519 AAAAC3Nza...开头的文本。3.1 密钥对的生成与配置让我们从生成一对密钥开始。目前最推荐使用Ed25519算法它比传统的RSA-2048/4096更快、更安全、密钥更短。# 在本地终端执行 ssh-keygen -t ed25519 -C your_emailexample.com -f ~/.ssh/my_server_key-t ed25519: 指定密钥类型为Ed25519。-C: 添加一个注释通常用邮箱便于标识密钥所有者。-f: 指定生成的私钥文件名和路径。如果不指定默认生成在~/.ssh/id_ed25519私钥和~/.ssh/id_ed25519.pub公钥。执行命令后会提示你输入一个密钥的通行短语。这是一个额外的安全层即使私钥文件被盗没有通行短语也无法使用。你可以直接回车留空但为了安全建议设置一个强密码短语。生成后你会得到两个文件my_server_key私钥和my_server_key.pub公钥。接下来需要将公钥“安装”到目标服务器上。# 将公钥上传并添加到服务器的授权列表中 ssh-copy-id -i ~/.ssh/my_server_key.pub userhostname这条命令会自动将你的公钥内容追加到服务器上对应用户家目录下的~/.ssh/authorized_keys文件中。如果服务器不支持ssh-copy-id可以手动操作# 在本地查看公钥并复制 cat ~/.ssh/my_server_key.pub # 然后登录服务器暂时还需用密码编辑 authorized_keys 文件 ssh userhostname mkdir -p ~/.ssh chmod 700 ~/.ssh echo “你复制的公钥内容” ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys3.2 密钥认证的幕后工作流程配置完成后当你再次执行ssh -i ~/.ssh/my_server_key userhostname时认证流程如下建立加密通道同密码登录先协商出会话密钥建立加密连接。声明认证方式客户端声明将使用“publickey”方式认证并告知服务器自己拥有的公钥对应哪个算法如ed25519。服务器发起挑战服务器在~/.ssh/authorized_keys文件中查找匹配的公钥。如果找到它会生成一个随机字符串挑战并用该公钥加密然后发送给客户端。客户端解密挑战客户端收到加密的挑战后使用本地对应的私钥进行解密。只有拥有正确私钥的客户端才能完成这一步。客户端响应挑战客户端将解密得到的原始随机字符串与当前会话ID混合计算出一个哈希值签名然后将这个签名发回给服务器。服务器验证签名服务器使用存储的公钥去验证这个签名。如果验证通过则证明客户端确实拥有对应的私钥认证成功。这个过程的核心思想是服务器用公钥加密一个谜题只有拥有私钥的你才能解开谜题并给出正确答案。整个过程中私钥从未离开过你的电脑也无需在网络中传输任何秘密信息。3.3 为何密钥登录更安全对比密码登录密钥登录的优势是压倒性的免疫暴力破解攻击者无法像猜密码一样去“猜”你的私钥。一个Ed25519私钥的搜索空间是2^256以目前的计算能力暴力破解需要宇宙年龄的时间。无需传输秘密认证过程中私钥始终在本地网络上流动的只有公钥和加密/签名的挑战数据从根本上杜绝了密码在传输中被截获的风险即使加密通道被破解攻击者得到的也只是用公钥加密的数据没有私钥依然无用。便于管理与撤销公钥就是一串文本管理起来非常方便。要撤销某个设备的访问权限只需从服务器的authorized_keys文件中删除对应的公钥行即可。而修改密码则会影响所有知道密码的人和设备。完美支持自动化通过SSH Agent密钥代理可以管理私钥的通行短语让脚本和工具在需要时自动使用私钥实现真正的免交互登录。4. 实战配置从基础到高效运维理解了原理我们来看看如何在实际工作中用好这两种登录方式尤其是如何安全、高效地使用密钥登录。4.1 服务器端安全加固禁用密码登录一旦你确认密钥登录工作正常最应该做的一件事就是在服务器上禁用密码登录。这是防止暴力攻击最有效的一招。编辑服务器上的SSH服务配置文件/etc/ssh/sshd_configsudo vim /etc/ssh/sshd_config找到并修改以下行PubkeyAuthentication yes # 确保公钥认证开启默认通常是yes PasswordAuthentication no # 将 yes 改为 no禁用密码认证 ChallengeResponseAuthentication no # 确保挑战响应认证也属于密码类关闭然后重启SSH服务使配置生效# 对于使用systemd的系统如Ubuntu 16.04, CentOS 7 sudo systemctl restart sshd # 重启后务必在另一个已连接的会话中测试密钥登录是否依然有效再关闭当前会话4.2 管理多台服务器SSH Config文件的妙用如果你需要管理多个服务器每次输入ssh -i /path/to/key userhost -p port非常繁琐。~/.ssh/config文件就是你的救星。它可以为不同的主机或主机模式定义别名和默认参数。# 编辑本地 ~/.ssh/config 文件 Host myserver1 HostName 192.168.1.100 User ubuntu Port 22 IdentityFile ~/.ssh/my_server_key # 可选关闭密码尝试加快连接速度 PreferredAuthentications publickey Host myserver2 HostName example.com User root Port 2222 IdentityFile ~/.ssh/another_key Host *.internal.company.com User deploy IdentityFile ~/.ssh/company_deploy_key配置完成后你只需要输入ssh myserver1或ssh myserver2SSH客户端会自动使用配置好的主机名、用户、端口和密钥文件进行连接体验丝滑。4.3 密钥管理与SSH Agent告别重复输入通行短语如果你为私钥设置了强通行短语每次连接都需要输入这又成了负担。SSH Agent密钥代理可以帮你安全地在内存中缓存已解密的私钥。# 启动ssh-agent并添加私钥通常已在桌面环境自动启动 eval “$(ssh-agent -s)” ssh-add ~/.ssh/my_server_key # 输入一次通行短语添加后在当前终端会话期间任何SSH连接都可以直接使用该私钥无需再次输入通行短语。你可以通过ssh-add -l查看已加载的密钥列表。为了让体验更无缝可以将以下内容添加到你的shell配置文件如~/.bashrc或~/.zshrc中实现自动管理# 自动启动ssh-agent并加载默认密钥 if [ -z “$SSH_AUTH_SOCK” ]; then eval “$(ssh-agent -s)” ssh-add ~/.ssh/id_ed25519 2/dev/null fi4.4 常见问题排查与解决思路在实际操作中你可能会遇到各种问题。下面是一个快速排查指南问题现象可能原因排查步骤与解决方案Permission denied (publickey).1. 服务器未配置公钥。2. 本地未指定或指定了错误的私钥。3. 服务器authorized_keys文件权限错误。4. 服务器SSH配置禁用了公钥认证。1. 确认公钥已正确添加到服务器~/.ssh/authorized_keys。2. 使用ssh -i /path/to/key ...指定正确私钥或检查~/.ssh/config。3. 检查服务器上~/.ssh目录权限应为700authorized_keys文件权限应为600。4. 检查服务器/etc/ssh/sshd_config中PubkeyAuthentication是否为yes。VSCode/Cursor Remote-SSH连接失败IDE的SSH实现可能与命令行环境不同特别是密钥路径和Agent的使用。1. 在VSCode的SSH配置文件中明确指定IdentityFile。2. 确保本地的ssh-agent正在运行且密钥已添加 (ssh-add -l)。3. 尝试在VSCode的远程设置中启用remote.SSH.useLocalServer或remote.SSH.path指向系统SSH。Git操作仍需输入密码Git仍然在尝试使用HTTPS方式或未使用SSH密钥。1. 检查远程仓库URL是否为SSH格式 (gitgithub.com:...)而非HTTPS。2. 执行git config --global url.“gitgithub.com:”.insteadOf “https://github.com/”进行全局替换。3. 运行ssh -T gitgithub.com测试到GitHub的SSH连接。Ubuntu等系统SSH连接后很快断开服务器或客户端SSH配置了过于激进的存活检测。在客户端~/.ssh/config或服务器/etc/ssh/sshd_config中调整ClientAliveInterval 60(服务器端秒)ServerAliveInterval 50(客户端秒)5. 进阶场景与安全最佳实践掌握了基础操作后我们来看一些更深入的场景和安全建议让你的SSH使用更上一层楼。5.1 为不同场景使用不同的密钥对不要一把钥匙开所有的门。这是一个至关重要的安全原则。你应该为不同的用途和服务创建独立的密钥对。个人开发机 vs. 生产服务器访问个人VPS的密钥和访问公司生产环境的密钥必须分开。一旦个人密钥泄露不会危及生产系统。Git服务为GitHub、GitLab等代码平台单独创建一个密钥对。很多平台允许你为不同设备添加不同的公钥方便管理。CI/CD流水线在Jenkins、GitLab CI等自动化工具中使用专门为部署生成的密钥对并严格限制其权限通常通过服务器的authorized_keys文件结合command限制只能运行特定命令。生成和管理多套密钥很简单只需在ssh-keygen时使用不同的-f参数指定文件名并在~/.ssh/config中为不同主机配置对应的IdentityFile即可。5.2 强化私钥安全通行短语与硬件密钥私钥文件的安全是密钥登录体系的基石。强制使用强通行短语ssh-keygen时一定要设置一个足够复杂、独特的通行短语。这为私钥文件本身增加了一层密码保护即使文件被盗也无法直接使用。安全的存储位置私钥应保存在本地用户目录下的~/.ssh/中并确保该目录权限为700 (drwx------)私钥文件权限为600 (-rw-------)。绝对不要将私钥上传到网盘、代码仓库或通过不安全的渠道传输。考虑硬件安全密钥对于最高安全级别的需求如服务器管理员、财务系统访问可以考虑使用YubiKey等硬件安全密钥。私钥存储在无法导出的硬件芯片中认证时需要物理触摸设备能有效防止远程窃取和恶意软件攻击。5.3 服务器端authorized_keys的精细控制authorized_keys文件的功能比你想象的更强大。你可以在公钥前面添加一系列选项对使用该密钥的登录行为进行限制。# 示例限制密钥只能从特定IP地址连接并且只能执行特定的备份命令 from“192.168.1.0/24,203.0.113.101”command“/usr/bin/rrsync /backup/”no-agent-forwardingno-port-forwardingno-pty ssh-ed25519 AAAAC3Nza... userbackup-pcfrom限制来源IP地址或CIDR范围。command强制连接后执行指定的命令而不是启动交互式shell。常用于自动化受限任务。no-agent-forwarding、no-port-forwarding、no-pty分别禁止SSH代理转发、端口转发和分配伪终端进一步限制会话能力。通过这些选项你可以实现最小权限原则即使某个密钥泄露攻击者能造成的破坏也非常有限。5.4 应对密钥泄露快速的应急响应如果你怀疑某个私钥可能已经泄露必须立即采取行动立即从所有服务器中移除对应的公钥登录每一台部署了该公钥的服务器从~/.ssh/authorized_keys文件中删除对应的行。在相关服务平台撤销密钥如果该密钥用于GitHub、GitLab、AWS等服务立即登录这些平台在账户安全设置中删除该公钥。生成并部署新的密钥对使用ssh-keygen生成新的密钥对并重新部署到所有必要的位置。审计日志检查服务器上的SSH认证日志 (/var/log/auth.log或/var/log/secure)搜索在怀疑泄露期间使用旧密钥的登录记录确认是否有未授权的访问。从密码登录切换到密钥登录不仅仅是换了一种登录方式更是将你的远程访问安全模型从“防守”转向了“主动防御”。它通过密码学原理在便利性和安全性之间取得了极佳的平衡。花一点时间理解和正确配置SSH密钥对于任何需要与远程服务器打交道的人来说都是一项回报率极高的投资。当你下次再看到ssh userhost后直接进入命令行而无需停顿输入密码时你会感谢自己今天所做的这个决定。

相关新闻

暑假最后4周,如何用小绿鲸水出一篇SCI?

暑假最后4周,如何用小绿鲸水出一篇SCI?

暑假最后4周,怎么水出一篇SCI初稿?其实不难啊,只要你当个合格的学术裁缝。今天不讲虚的,给大家传授一下邪修写SCI的小技巧——从定框架、攒素材再到缝合包装,只要你照着做,暑假最后4周水出一篇SCI轻轻松松。…

2026/7/30 8:05:03阅读更多 →
银企直连UKEY集中管理方案:架构、实施与安全运维全解析

银企直连UKEY集中管理方案:架构、实施与安全运维全解析

1. 项目概述:为什么我们需要一个UKEY集中管理方案? 如果你在财务部门或者负责企业资金结算,对“银企直连”和“UKEY”这两个词一定不陌生。银企直连是企业与银行系统直接对接,实现自动化的资金划转、账户查询、对账等操作的核心通…

2026/7/30 8:05:02阅读更多 →
AI做B站视频全流程拆解(从脚本→配音→字幕→封面→发布,零基础72小时速成)

AI做B站视频全流程拆解(从脚本→配音→字幕→封面→发布,零基础72小时速成)

更多请点击: https://codechina.net 第一章:AI做B站视频全流程概览与工具链选型 AI生成B站视频已从概念走向落地实践,其核心在于将创意、脚本、语音、画面、剪辑与发布环节系统化串联。整个流程可抽象为“策划→生成→合成→优化→发布”五个…

2026/7/30 8:05:02阅读更多 →
OpenClaw AI开发框架:从部署到优化的全流程指南

OpenClaw AI开发框架:从部署到优化的全流程指南

1. OpenClaw系统与AI落地闭环的核心价值OpenClaw作为新一代AI智能体开发框架,其核心价值在于解决了传统AI模型从开发到实际业务落地的"最后一公里"问题。这个系统通过模块化设计将大语言模型、工具调用、记忆存储等能力封装为可插拔组件,让开发…

2026/7/30 11:46:01阅读更多 →
Unity Vuforia AR开发实战:图像识别触发视频播放全流程指南

Unity Vuforia AR开发实战:图像识别触发视频播放全流程指南

1. 项目概述:为什么选择Vuforia实现AR视频触发? 如果你正在寻找一个能快速上手、效果稳定且功能强大的AR开发方案,那么“扫描图片触发视频播放”这个项目绝对是一个绝佳的起点。这个场景在博物馆导览、产品说明书、互动营销海报等领域应用非常…

2026/7/30 11:46:01阅读更多 →
字符串操作编程实战:从基础算法到多语言实现技巧

字符串操作编程实战:从基础算法到多语言实现技巧

这次我们来看一个字符串操作的技术题目——精诚联盟信息技术第10题。这道题虽然看起来简单,但涉及到的字符串操作在实际开发中非常常见,特别是数据处理、文本解析和算法实现等场景。字符串操作是编程基础中的核心内容,无论是前端开发、后端服…

2026/7/30 11:46:01阅读更多 →
终极GTA5安全防护工具:YimMenu完整使用指南与防崩溃教程

终极GTA5安全防护工具:YimMenu完整使用指南与防崩溃教程

终极GTA5安全防护工具:YimMenu完整使用指南与防崩溃教程 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/Yi…

2026/7/30 11:46:01阅读更多 →
Fate/Grand Automata 终极指南:快速实现FGO自动战斗的完整解决方案

Fate/Grand Automata 终极指南:快速实现FGO自动战斗的完整解决方案

Fate/Grand Automata 终极指南:快速实现FGO自动战斗的完整解决方案 【免费下载链接】FGA Auto-battle app for F/GO Android 项目地址: https://gitcode.com/gh_mirrors/fg/FGA Fate/Grand Automata(简称FGA)是一款专为《Fate/Grand O…

2026/7/30 11:46:01阅读更多 →
鸣潮自动化终极指南:零门槛解放双手的智能助手完整教程

鸣潮自动化终极指南:零门槛解放双手的智能助手完整教程

鸣潮自动化终极指南:零门槛解放双手的智能助手完整教程 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 鸣潮自动化工具…

2026/7/30 11:44:00阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/29 9:47:45阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/29 7:00:19阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/29 7:58:51阅读更多 →
3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 🚀 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾经因为iOS系统的严格…

2026/7/30 0:00:58阅读更多 →
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:00:58阅读更多 →
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/30 4:47:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/29 14:26:42阅读更多 →