<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>技术 on Dawn`s Blog</title><link>https://www.acdiost.com/categories/%E6%8A%80%E6%9C%AF/</link><description>Recent content in 技术 on Dawn`s Blog</description><generator>Hugo</generator><language>zh-Hans</language><lastBuildDate>Sat, 18 Apr 2026 21:04:35 +0800</lastBuildDate><atom:link href="https://www.acdiost.com/categories/%E6%8A%80%E6%9C%AF/index.xml" rel="self" type="application/rss+xml"/><item><title>FreeIPA 完整部署指南：从零到一的集中认证方案</title><link>https://www.acdiost.com/posts/freeipa/</link><pubDate>Sat, 18 Apr 2026 21:04:35 +0800</pubDate><guid>https://www.acdiost.com/posts/freeipa/</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;&#10;&lt;p&gt;在构建 HPC 集群、Slurm 调度系统或内部技术平台时，&lt;strong&gt;统一身份认证&lt;/strong&gt; 是绕不过的第一道坎。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;不想自己拼 LDAP + Kerberos + DNS + CA？&lt;/li&gt;&#10;&lt;li&gt;希望一个工具解决账号管理、密钥分发、证书颁发？&lt;/li&gt;&#10;&lt;li&gt;需要开箱即用、生产就绪的方案？&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;那么 &lt;strong&gt;FreeIPA&lt;/strong&gt; 就是你的答案。&lt;/p&gt;&#10;&lt;p&gt;本文基于真实部署经验，包含完整的命令流程、每一步的&amp;quot;为什么&amp;quot;、常见坑点和排查方法。读完这篇，你能独立部署一套可用的企业级身份认证系统。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="一为什么选择-freeipa"&gt;一、为什么选择 FreeIPA？&lt;/h2&gt;&#10;&lt;h3 id="freeipa-的核心价值"&gt;FreeIPA 的核心价值&lt;/h3&gt;&#10;&lt;p&gt;FreeIPA 不是单一工具，而是一个&amp;quot;一体化身份管理平台&amp;quot;，它整合了以下组件：&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;组件&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;作用&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;为什么需要&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;389-DS&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;LDAP 目录服务&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;集中存储用户、组、主机等目录信息，支持复杂查询和权限控制&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;MIT Kerberos&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;网络身份认证&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;提供无密码认证（票据制），比密码更安全，支持 SSO&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;BIND&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;DNS 服务&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;FreeIPA 依赖 DNS 进行主机发现、服务定位（SRV 记录）和身份验证&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Dogtag&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;证书颁发机构（CA）&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;签发 HTTPS、客户端证书，支持 SSH 证书认证&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;SSSD&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;客户端认证守护进程&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;缓存认证信息，支持离线登录，减轻服务器压力&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="对比其他方案"&gt;对比其他方案&lt;/h3&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;方案&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;学习成本&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;维护难度&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;功能完整度&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;自建 LDAP&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;★★★★☆&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;★★★★★&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;★★★☆☆&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;自建 LDAP + K5&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;★★★★★&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;★★★★★&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;★★★★☆&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;FreeIPA&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;★★☆☆☆&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;★★☆☆☆&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;★★★★★&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Active Directory&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;★☆☆☆☆&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;★★☆☆☆&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;★★★★★&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;&lt;strong&gt;FreeIPA 的优势：&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>MacOS</title><link>https://www.acdiost.com/posts/macos/</link><pubDate>Sat, 16 Nov 2024 22:37:34 +0800</pubDate><guid>https://www.acdiost.com/posts/macos/</guid><description>&lt;p&gt;记录一下新到的 MacOS 软件安装&lt;/p&gt;&#10;&lt;h4 id="homebrew"&gt;Homebrew&lt;/h4&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/bin/bash -c &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;eval &amp;#34;$(/opt/homebrew/bin/brew shellenv)&amp;#34;&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /Users/dawn/.zprofile&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;export HOMEBREW_PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.zprofile&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;export HOMEBREW_API_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.zprofile&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.zprofile&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="basic"&gt;Basic&lt;/h4&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install font-lxgw-wenkai&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install tmux&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install git&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="oh-my-zsh"&gt;Oh my zsh&lt;/h4&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git clone --depth&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git clone --depth&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; https://github.com/zsh-users/zsh-autosuggestions.git ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git clone --depth&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="orbstack"&gt;OrbStack&lt;/h4&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install orbstack&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="输入法"&gt;输入法&lt;/h4&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install --cask squirrel&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git clone --depth&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; git@github.com:acdiost/oh-my-rime.git ~/Library/Rime&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="nodejs"&gt;Nodejs&lt;/h4&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install node@22&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;export PATH=&amp;#34;/opt/homebrew/opt/node@22/bin:$PATH&amp;#34;&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.zprofile&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="rust"&gt;Rust&lt;/h4&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install rust&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="python"&gt;Python&lt;/h4&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install python@3.13&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pip3 config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="go"&gt;Go&lt;/h4&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install go&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;export GOPATH=&lt;/span&gt;$HOME&lt;span style="color:#e6db74"&gt;/go&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; ~/.zprofile&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;export GO111MODULE=on&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; ~/.zprofile&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;export GOPROXY=https://goproxy.cn,direct&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; ~/.zprofile&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="java"&gt;Java&lt;/h4&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install java&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;export PATH=&amp;#34;/opt/homebrew/opt/openjdk/bin:$PATH&amp;#34;&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.zprofile&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install maven&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 配置文件&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/opt/homebrew/Cellar/maven/3.9.9/libexec/conf/settings.xml&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="syncthing"&gt;Syncthing&lt;/h4&gt;&#10;&lt;p&gt;使用 Syncthing 同步文件&lt;/p&gt;</description></item><item><title>写了一个 hugo 主题</title><link>https://www.acdiost.com/posts/%E5%86%99%E4%BA%86%E4%B8%80%E4%B8%AAhugo%E4%B8%BB%E9%A2%98/</link><pubDate>Thu, 08 Feb 2024 22:14:09 +0800</pubDate><guid>https://www.acdiost.com/posts/%E5%86%99%E4%BA%86%E4%B8%80%E4%B8%AAhugo%E4%B8%BB%E9%A2%98/</guid><description>&lt;p&gt;在上个月末，我突发奇想，决定自己结合 ChatGPT 写一个 Hugo 主题。&#10;最开始通过网上的几个视频教程学习，如何创建主题开始一个 Hello world，&#10;再参考其他主题的语法，把基础的几个页面架子搭建出来了。&lt;/p&gt;&#10;&lt;p&gt;然后开始学习 Tailwindcss，也间接了解了 Unocss。&lt;/p&gt;&#10;&lt;p&gt;最后通过和 ChatGPT 的对话，写了三遍，我成功地完成了此主题编写。&lt;/p&gt;&#10;&lt;p&gt;期间因为工作、其他事情的耽搁，花费了将近半个月才把这个主题完全写好。&lt;/p&gt;&#10;&lt;p&gt;前前后后总耗时预计为两天。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;整个页面布局简单&lt;br&gt;&#10;兼容手机&lt;br&gt;&#10;文章字体使用落霞文楷，更契合汉字美感&lt;br&gt;&#10;将字体调整大，为大多近视的人提供更好的阅读体验&lt;/p&gt;</description></item><item><title>Use_tailwindcss</title><link>https://www.acdiost.com/posts/use_tailwindcss/</link><pubDate>Thu, 01 Feb 2024 22:11:29 +0800</pubDate><guid>https://www.acdiost.com/posts/use_tailwindcss/</guid><description>&lt;h2 id="安装"&gt;安装&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;hugo new theme acdiost-theme&lt;/code&gt; 创建主题后进入 &lt;code&gt;cd themes/acdiost-theme&lt;/code&gt; 目录&lt;/p&gt;&#10;&lt;p&gt;Install Tailwind CSS&#10;Install tailwindcss via npm, and create your tailwind.config.js file.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npm install -D tailwindcss&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npx tailwindcss init&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Add the paths to all of your template files in your tailwind.config.js file.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;/** @type {import(&amp;#39;tailwindcss&amp;#39;).Config} */&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;module&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;exports&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;content&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; [&lt;span style="color:#e6db74"&gt;&amp;#34;./layouts/**/*.{html,js}&amp;#34;&lt;/span&gt;],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;theme&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;extend&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; {},&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;plugins&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; [],&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Add the @tailwind directives for each of Tailwind’s layers to your main CSS file.&lt;/p&gt;</description></item><item><title>树莓派软路由</title><link>https://www.acdiost.com/posts/%E6%A0%91%E8%8E%93%E6%B4%BE%E8%BD%AF%E8%B7%AF%E7%94%B1/</link><pubDate>Wed, 20 Dec 2023 21:24:59 +0800</pubDate><guid>https://www.acdiost.com/posts/%E6%A0%91%E8%8E%93%E6%B4%BE%E8%BD%AF%E8%B7%AF%E7%94%B1/</guid><description>&lt;h2 id="树莓派-4b-docker-openwrt-软路由快速配置"&gt;树莓派 4B docker openwrt 软路由快速配置&lt;/h2&gt;&#10;&lt;h3 id="安装前提"&gt;安装前提&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Docker&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -fsSL https://get.docker.com -o get-docker.sh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo sh get-docker.sh&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;我使用的系统环境是&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dawn@raspberrypi:/opt/openwrt $ uname -a&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Linux raspberrypi 6.1.0-rpi4-rpi-v8 &lt;span style="color:#75715e"&gt;#1 SMP PREEMPT Debian 1:6.1.54-1+rpt2 (2023-10-05) aarch64 GNU/Linux&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dawn@raspberrypi:/opt/openwrt $ cat /etc/os-release&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PRETTY_NAME&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Debian GNU/Linux 12 (bookworm)&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;NAME&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Debian GNU/Linux&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;VERSION_ID&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;12&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;VERSION&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;12 (bookworm)&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;VERSION_CODENAME&lt;span style="color:#f92672"&gt;=&lt;/span&gt;bookworm&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ID&lt;span style="color:#f92672"&gt;=&lt;/span&gt;debian&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;HOME_URL&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;https://www.debian.org/&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SUPPORT_URL&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;https://www.debian.org/support&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BUG_REPORT_URL&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;https://bugs.debian.org/&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="开启混杂模式"&gt;开启混杂模式&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ip link set eth0 promisc on&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;此命令将 Raspberry Pi 上的以太网接口 eth0 设置为混杂模式。 在混杂模式下，网络接口可以捕获其所连接的网段上的所有网络流量。&lt;/p&gt;&#10;&lt;h3 id="创建网络"&gt;创建网络&lt;/h3&gt;&#10;&lt;p&gt;此网段需要和路由器一致，例如我家的光猫 IP 为 192.168.1.1&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo docker network create -d macvlan --subnet&lt;span style="color:#f92672"&gt;=&lt;/span&gt;192.168.1.0/24 --gateway&lt;span style="color:#f92672"&gt;=&lt;/span&gt;192.168.1.1 -o parent&lt;span style="color:#f92672"&gt;=&lt;/span&gt;eth0 openwrt-wan&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;此命令使用 macvlan 驱动程序创建一个名为 openwrt-wan 的 Docker 网络。 它通过 Raspberry Pi 上的 eth0 有效地将 Docker 容器桥接到物理网络。&lt;/p&gt;</description></item><item><title>为服务器添加 Cloudflare Wrap</title><link>https://www.acdiost.com/posts/%E4%B8%BA%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%B7%BB%E5%8A%A0-cloudflare-wrap/</link><pubDate>Wed, 05 Apr 2023 10:42:09 +0800</pubDate><guid>https://www.acdiost.com/posts/%E4%B8%BA%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%B7%BB%E5%8A%A0-cloudflare-wrap/</guid><description>&lt;p&gt;Cloudflare WARP 是 Cloud­flare 提供的一项基于 Wire­Guard 的网络流量安全及加速服务，能够让你通过连接到 Cloud­flare 的边缘节点实现隐私保护及链路优化。&lt;/p&gt;&#10;&lt;p&gt;很多我们需要访问的网站都需要使用原生 IP，比如：Disney+， ChatGPT, New Bing 等。&lt;/p&gt;&#10;&lt;p&gt;所谓原生 IP 就是指该网站的 IP 地址和其机房的 IP 地址是一致的&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget git.io/warp.sh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo bash warp.sh menu&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;选择：1、4、5；&lt;/p&gt;&#10;&lt;p&gt;1 - 安装 Cloudflare WARP 官方客户端&lt;/p&gt;&#10;&lt;p&gt;4 - 安装 WireGuard 相关组件&lt;/p&gt;&#10;&lt;p&gt;5 - 自动配置 WARP WireGuard IPv4 网络&lt;/p&gt;&#10;&lt;p&gt;如果有 ipv4 和 ipv6，则可选：1、4、7&lt;/p&gt;&#10;&lt;p&gt;1 - 安装 Cloudflare WARP 官方客户端&lt;/p&gt;&#10;&lt;p&gt;4 - 安装 WireGuard 相关组件&lt;/p&gt;&#10;&lt;p&gt;7 - 自动配置 WARP WireGuard 双栈全局网络&lt;/p&gt;</description></item><item><title>为 Git 添加签名验证信息</title><link>https://www.acdiost.com/posts/%E4%B8%BA-git-%E6%B7%BB%E5%8A%A0%E7%AD%BE%E5%90%8D%E4%BF%A1%E6%81%AF/</link><pubDate>Mon, 06 Feb 2023 10:50:22 +0800</pubDate><guid>https://www.acdiost.com/posts/%E4%B8%BA-git-%E6%B7%BB%E5%8A%A0%E7%AD%BE%E5%90%8D%E4%BF%A1%E6%81%AF/</guid><description>&lt;p&gt;有时候我们能在 GitHub 上看到有的项目在提交信息中有 Verified 的绿色签名验证框，在一些大型项目中，此签名信息是必须的，否则无法提交相关的代码在项目中。下面是在 Git Bash 中的配置操作(&lt;code&gt;brew install gnupg&lt;/code&gt; on MacOS)：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gpg --full-generate-key&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gpg &lt;span style="color:#f92672"&gt;(&lt;/span&gt;GnuPG&lt;span style="color:#f92672"&gt;)&lt;/span&gt; 2.2.23-unknown; Copyright &lt;span style="color:#f92672"&gt;(&lt;/span&gt;C&lt;span style="color:#f92672"&gt;)&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2020&lt;/span&gt; Free Software Foundation, Inc.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;This is free software: you are free to change and redistribute it.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;There is NO WARRANTY, to the extent permitted by law.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Please &lt;span style="color:#66d9ef"&gt;select&lt;/span&gt; what kind of key you want:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;(&lt;/span&gt;1&lt;span style="color:#f92672"&gt;)&lt;/span&gt; RSA and RSA &lt;span style="color:#f92672"&gt;(&lt;/span&gt;default&lt;span style="color:#f92672"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;(&lt;/span&gt;2&lt;span style="color:#f92672"&gt;)&lt;/span&gt; DSA and Elgamal&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;(&lt;/span&gt;3&lt;span style="color:#f92672"&gt;)&lt;/span&gt; DSA &lt;span style="color:#f92672"&gt;(&lt;/span&gt;sign only&lt;span style="color:#f92672"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;(&lt;/span&gt;4&lt;span style="color:#f92672"&gt;)&lt;/span&gt; RSA &lt;span style="color:#f92672"&gt;(&lt;/span&gt;sign only&lt;span style="color:#f92672"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;(&lt;/span&gt;14&lt;span style="color:#f92672"&gt;)&lt;/span&gt; Existing key from card&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Your selection? &lt;span style="color:#75715e"&gt;# 输入 Enter&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;RSA keys may be between &lt;span style="color:#ae81ff"&gt;1024&lt;/span&gt; and &lt;span style="color:#ae81ff"&gt;4096&lt;/span&gt; bits long.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;What keysize &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt; you want? &lt;span style="color:#f92672"&gt;(&lt;/span&gt;3072&lt;span style="color:#f92672"&gt;)&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;4096&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 输入 4096&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Requested keysize is &lt;span style="color:#ae81ff"&gt;4096&lt;/span&gt; bits&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Please specify how long the key should be valid.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0 &lt;span style="color:#f92672"&gt;=&lt;/span&gt; key does not expire&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;n&amp;gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; key expires in n days&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;n&amp;gt;w &lt;span style="color:#f92672"&gt;=&lt;/span&gt; key expires in n weeks&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;n&amp;gt;m &lt;span style="color:#f92672"&gt;=&lt;/span&gt; key expires in n months&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;n&amp;gt;y &lt;span style="color:#f92672"&gt;=&lt;/span&gt; key expires in n years&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Key is valid &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt;? &lt;span style="color:#f92672"&gt;(&lt;/span&gt;0&lt;span style="color:#f92672"&gt;)&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 输入 Enter&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Key does not expire at all&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Is this correct? &lt;span style="color:#f92672"&gt;(&lt;/span&gt;y/N&lt;span style="color:#f92672"&gt;)&lt;/span&gt; y &lt;span style="color:#75715e"&gt;# 输入 y&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GnuPG needs to construct a user ID to identify your key. &lt;span style="color:#75715e"&gt;# 输入个人资料&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Real name: acdiost&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Email address: acdiost@email.com&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Comment:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;You selected this USER-ID:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;acdiost &amp;lt;acdiost@email.com&amp;gt;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Change &lt;span style="color:#f92672"&gt;(&lt;/span&gt;N&lt;span style="color:#f92672"&gt;)&lt;/span&gt;ame, &lt;span style="color:#f92672"&gt;(&lt;/span&gt;C&lt;span style="color:#f92672"&gt;)&lt;/span&gt;omment, &lt;span style="color:#f92672"&gt;(&lt;/span&gt;E&lt;span style="color:#f92672"&gt;)&lt;/span&gt;mail or &lt;span style="color:#f92672"&gt;(&lt;/span&gt;O&lt;span style="color:#f92672"&gt;)&lt;/span&gt;kay/&lt;span style="color:#f92672"&gt;(&lt;/span&gt;Q&lt;span style="color:#f92672"&gt;)&lt;/span&gt;uit? O &lt;span style="color:#75715e"&gt;# 输入 O&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;We need to generate a lot of random bytes. It is a good idea to perform&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;some other action &lt;span style="color:#f92672"&gt;(&lt;/span&gt;type on the keyboard, move the mouse, utilize the&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;disks&lt;span style="color:#f92672"&gt;)&lt;/span&gt; during the prime generation; this gives the random number&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;generator a better chance to gain enough entropy. &lt;span style="color:#75715e"&gt;# 在弹出窗口中设置密码&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gpg --list-secret-keys --keyid-format&lt;span style="color:#f92672"&gt;=&lt;/span&gt;long &lt;span style="color:#75715e"&gt;# 列出 gpg key 信息&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gpg: checking the trustdb&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gpg: marginals needed: &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt; completes needed: &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; trust model: pgp&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gpg: depth: &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; valid: &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; signed: &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; trust: 0-, 0q, 0n, 0m, 0f, 1u&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/c/Users/Dawn/.gnupg/pubring.kbx&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;--------------------------------&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sec rsa4096/73DFAAC188F713EE 2023-02-06 &lt;span style="color:#f92672"&gt;[&lt;/span&gt;SC&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 此处为 ID&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; xxxxxxx&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;uid &lt;span style="color:#f92672"&gt;[&lt;/span&gt;ultimate&lt;span style="color:#f92672"&gt;]&lt;/span&gt; acdiost &amp;lt;acdiost@email.com&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssb rsa4096/BC06DE040749ABCA 2023-02-06 &lt;span style="color:#f92672"&gt;[&lt;/span&gt;E&lt;span style="color:#f92672"&gt;]&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gpg --armor --export 73DFAAC188F713EE &lt;span style="color:#75715e"&gt;# 导出秘钥&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;将打印的秘钥复制至 &lt;a href="https://github.com/settings/gpg/new"&gt;GitHub 的 GPG keys&lt;/a&gt; 中&lt;/p&gt;</description></item><item><title>My First Post</title><link>https://www.acdiost.com/posts/my-first-post/</link><pubDate>Fri, 03 Feb 2023 12:27:12 +0800</pubDate><guid>https://www.acdiost.com/posts/my-first-post/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;This is &lt;strong&gt;bold&lt;/strong&gt; text, and this is &lt;em&gt;emphasized&lt;/em&gt; text.&lt;/p&gt;&#10;&lt;p&gt;Visit the &lt;a href="https://gohugo.io"&gt;Hugo&lt;/a&gt; website!&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;添加文章： &lt;code&gt;hugo new &amp;quot;categories/title.md&amp;quot;&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;本地查看： &lt;code&gt;hugo server -D&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;发布文章： &lt;code&gt;hugo&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;同步 Hugo 至 GitHub：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd hugo-blog&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git add .&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git commit -sm &lt;span style="color:#e6db74"&gt;&amp;#34;add new post&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git push -u origin main&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;p&gt;我创建博客使用了很多工具，诸如新浪博客、WordPress、typecho、leanote、hexo、logseq 和语雀等。&#10;最终选择使用 hugo 来管理，GitHub Pages 作为托管。&#10;曾使用 WordPress、typecho 和 hexo 把站点弄的花里胡哨，其实并没有太大作用。&#10;我也曾使用 logseq 和 obsidian 来管理，但它们是作为知识的整理归纳；博客作为最后的输出，发现不太适合自己的需求。&lt;/p&gt;&#10;&lt;p&gt;我选择了自己结合 ChatGPT 用 tailwindcss 写一个 hugo 的主题，致力于阅读，没有评论让自己思考；化繁为简没有其他的东西干扰。&lt;/p&gt;&#10;&lt;p&gt;其实最重要的莫过于是持之以恒，任何事大抵如此。&#10;望自己能坚持下去！&lt;/p&gt;</description></item></channel></rss>