VPS2:githubio博客和VPN

前言 之前使用 VPS 搭建个人博客和代理,但是这样需要时刻维护服务器,其实还是占用了不少时间和精力,为了最方便地使用,目前使用 hugo 博客搭配 githubio 使用,而代理则使用成品代理,有专人替你维护。 HUGO 安装 HUGO 是基于 go 的博客框架,编译起来比之前基于 node 的 js 框架要快非常多。 Install Hugo brew install hugo 然后选一个主题即可,我这边选择的是 PaperMod,使用 git submodule 安装: Install PaperMod 部署到 Github 设置参照 theme 给的例子即可,需要注意的是部署到 github 需要将 publishDir = "docs" 加在配置中,然后在 githubio 设置中将发布路径改为 docs,这样不用设置另外分支,非常方便。 生成网页 博客直接在 posts 中用 md 编写即可,需要发布时先用 hugo 命令生成,然后同步 github 的 repo hugo -D 在 VSCode 和部署中同时看到正确的图片 由于 Hugo 生成网页的路径和 VSCode 本地路径不一致,导致只有一个地方可以看到正确的图片。解决办法是使用 Hugo 的 Page Bundles。Hugo 的 Page Bundles 允许你将内容页面和与之相关的资源(如图片)组织在同一文件夹下。例如,如果你有以下的目录结构:(注意 md 文件必须使用 index 作为文件名,这样 Hugo 才不会为这个 md 文件单独加一层文件夹)...

August 26, 2022

备份:各种环境的备份与重装

前言 每一次大更新设备时,总想要有一个新的干净的环境,这就需要重装,二重装总是越快越好,所以有一些配置数据最好可以备份出来。 备份 先讲一下一些基本设备的数据备份…… Apple Mac 使用 timeMachine 备份即可,详见 Mac 设置那几篇。移动设备 iCloud 备份 Windows 我的 Windows 只是辅助以及游戏影音功能,不设备份 配置导出 然后时重装时的配置导出…… 移动设备 依赖于 iCloud 的设备同步,若是想要新环境,只能自己调整配置,下载软件。 Mac 安装 brew 之后,安装 mas,然后 brew bundle dump 可以生成 brewfile,包括 brew 和 mas 中的软件,安装时 brew bundle 即可。其他软件依然是记录 md 文件 其他 zsh 和 bash 的配置在.zshrc 和.bashrc 中,备份即可,而 VScode 如下备份(要早 VSCode 中安装 code 命令行命令) code --list-extensions > ext-list.txt 然后正则替换(.*)\r?\n变成--install-extension $1,最后加上 code 变成code --install-extension [扩展1] --install-extension [扩展2] ... 就可以安装了 重装指南 在网盘中存一份重装指南,分门别类存好信息即可

August 15, 2020

RSP2:homeassistant

前言 小米的智能家庭套件可谓是物美价廉,然而它有着对于我这种强迫症非常不能接受的一个特点:非本地,所有的操作所有的智能都必须通过与小米远端的服务器进行数据交换才能够进行,这也就意味者在没有网络(路由器断了外网)或者小米服务器出故障的情况下,所有的小米设备会处于瘫痪状态; 当然,这不是最主要的问题,而是这样一来,你的设备的所有动向都会被小米收集,这是严重的个人信息的泄露活着至少说是不安全因素(所以很奇怪居然有人敢买小米的摄像头作为监控,这到底是安全还是更不安全)。 当然,这也许就是小米的目的,在后面的设置中也可以看出这一点迹象(特别是本地设备的通讯密码在高版本的米家中就不存在本地了,开玩笑呢…)。而树莓派被大量的被用于智能家庭的中枢,恰好可以作为一个本地中枢,我就想也简单地玩一下。 基本框架 期望是将米家完整的接入开源智能家居平台 homeassistant(安装在树莓派上),然后通过其自带的 homekit 支持可以完整地使用 homekit 控制。其中智能全都安装在 homeassistant 上,将每个智能都以一个开关设备的形式暴露给 homekit,通过本地苹果设备实现 homekit 的远端控制。 这样米家设备被限制在 homeassistant 的管理之下,homeassistant 在本地路由器下完整地本地运行,远程完全交给 homekit(作为唯一的出口,实现设备开关和智能条目的开关,后期可以直接禁止除了本地苹果设备 ip 之外的所有向外的数据通讯) 完整构架:米家——HA——HK——远端,其中米家是独立的设备,HK 自身不用设置(只需把不同设备在 HK 中分标签页的安排好就行:分为电器及开关,环境数值传感器,安防传感器,智能条目四个标签页即可),远端通过 homekit 自带功能也不用设置(只需将本地苹果设备联入路由器并且设为 HK 中枢),四个环节中只有 HA 要独立配置。而三个连接中,米家——HA 以及 HA——HK 都是需要配置的。 设置 HA 因为 HA 有自己的树莓派系统 hassbian,自带了管理工具 hassbian-config(hassbian 基于 raspbian 的最小镜像,所以操作也差不多,因为有自带工具,就换了系统)。 hassbian 在官网下载镜像(还有基于 docker 的 hass.io,相关安装也可以在官网找到),安装时其实推荐 中文官方文档 ,有比较简单的安装流程(包括 hass.io),中文文档其实来自墨澜,她的技术站 我选择了 hassbian,按照流程: 下载 烧录(和官方系统一样) 加入无线路由其配置文件-开机等待(墙内网不好,基本都要手动 ssh 安装 HA,这点 mossbian 应该好很多) 手动 SSH 登录(同一路由器下网址 hassbian.local),用 hassbian-config 安装 HA(失败多安装几次) 安装 samba hassbian....

February 19, 2019

RSP3:HA智能

前言 这里准备做一些智能的设置,因为主要是使用 HK 作为控制中心,使用 HA 作为智能中心,所以对于 HA 的各种有趣界面的设置我也就不高兴做了,有兴趣可以看看墨澜的东西,写得还是不错的而且是中文的。 设置 需要调用设备的一些功能 比如灯要设置场景,空气净化器要设置各种模式(这些都会在 HA 中以 service 的形式置入,如果没有的话就不能控制了,就是说 HA 中智能做到以一定条件一定顺序调用各种 service,如果没有这个 service 就只能自己写 platform(基于 python)独立接入这个设备或者等开发人员更新了…) 在官网中 conponents 下搜索 template 可以发现许多可以自定义的组件,按需取用即可 智能场景 可以定义各种 script 和 automation,script 和 automation 将会以开关的形式在 HK 中显示。而 automation 可以调用 script。 script 本质是按照一定顺序调用一些服务,当然加入 condition 也可以检测当时的状态决定调用哪一些服务。而 automation 主要由 trigger 触发,之后会调用一些服务。 分组 可以按照官网中的知道,编写 group 文件,将 HA 的设备按照分类整理好,这样可以方便地找到需要的设备,在 customize 里面也可以将一些自动加入的设备(比如 zigbee 的传感器)的名字改成易读的名字。 PS 这样就可以实现米家的大部分功能,并且智能部分是比米家要功能更多的(但是有些功能,比如网关的广播是不行的,当然广播要联网,我的目的是米家设备不联网,就算了也罢) 若需要两地不同的 homekit 但是却有公用的设备,可以植被碗一张 sd 卡后另外制备一张 sd,设备 token 可以使用第一张 sd 卡相同的,这时候开启 homekit 服务将会是另一个 homekit,然后在 ios 中切换到另一个家添加 homekit。

February 19, 2019

RSP1:基本设置

前言 又折腾买了个树莓派,正好右 32g 不用的 tf 卡,就准备来玩玩看可以做些什么。 安装系统 网上教程乱七八糟,最后还是官方文档比较清楚,下载系统解压后使用 etcher 烧录至 tf 卡,然后插入树莓派就可以启动了。 连接树莓派 先在根目录下加一个空白的名为 ssh 的文件让树莓派支持 ssh 连接,然后将电脑和树莓派通过网线相连。获取树莓派 ip 地址: ping raspberrypi.local 然后就可以 ssh 连接这个树莓派,用户名"pi",密码"raspberry"。接下来使用 sudo raspi-config 进行基础设置,更改密码,地区设置(加入 zh-CN UTF8 支持,但个人依然只有 en-GB UTF8 作为默认语言),允许 ssh,扩展储存(高级设置里扩展储存选项) 然后安装 vim,zsh 等常用的软件。 更换清华源 sudo nano /etc/apt/sources.list //注释掉原来的,加入 deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi //保存退出,然后 sudo nano /etc/apt/sources.list.d/raspi.list //注释掉原来的,加入 deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui 就可以更新了...

December 20, 2018

Markdown3:配合Pandoc

前言 从 Md1 到 Md2,基本的 Markdown 写作已经没有问题了,然后就会想用 md 解决其他的事情了,比如写学术论文,Latex 写起来太费劲了,公式还是 word 比较方便。 Pandoc 是一个开源的万能文档转换软件,可以在 pdf,md,word,html 之间转换文档格式。而装了 vscode-pandoc 后可以直接在 vscode 中使用,但是每次只能用同样的命令行参数,否则只能在终端中使用。 安装 直接 brew 安装即可,还要安装 pandoc-citeproc,vscode 插件也是一键安装。 然后是配置,word 不需要配置,html 需要配置命令行参数,在设置的 string 里面填入就行。 html 参数 --standalone --self-contained --css pandoc.css 以上转换命令中选项含义介绍如下。 “–standalone”:为目标格式文件增加合适的“header”和“footer”。如果目标格式是“HTML”,那么通过该选项可解决“由于未设置合适的字符编码,而导致的乱码问题”。 “–self-contained” :如果目标格式是“HTML”,那么可得到如下效果:在转换得到目标 HTML 文件的过程中,会将依赖的“脚本,CSS,图片,视频”等文件的内容内嵌到目标 HTML 文件中。 “–css pandoc.css” :使得目标格式文件最后使用“pandoc.css”文件作为 CSS 文件,否则,使用默认的 CSS 文件。 PDF 参数 pdf 需要 latex 的支持,mac 可以装 Mactex,Win 有 texlive(不过要配置环境变量) 然而当你尝试的时候就会有各种 bug,网上也有解决方案,但都不是很漂亮,所以我就放弃了这个选项…… 所以 最终我选择了把 md 转为 word 然后可以使用 word 的公式编辑器编写公式……...

October 17, 2018

Linux1:基本命令

前言 感觉学一些 linux 的基本命令还是十分必要的,不仅服务器需要,Mac 也会有要求。本文介绍的一些命令,mac 里面应该都有。 关于 Linux 的更多东西,看 ArchLinux 的 wiki 是一个非常好的选择,其中文档比绝大多数教程要好。 Linux 权限 Linux 下有两种用户:普通用户和超级用户。 普通用户:在 linux 下做有限的事情。 超级用户:可以在 linux 系统下做任何事情,不受限制。 切换用户: su [用户] Linux 权限管理 文件访问者的分类 Linux 把访问者分为 3 类。 文件和文件目录的所有者:u—User 文件和文件目录的所有者所在的组的用户:g—Group 其他用户:o—Others 文件访问权限的种类 读,写,执行(对文件而言,执行文件;对目录而言,进入目录) 文件权限值得表示方法 表示 权限 r–- 只读 -w- 仅可写 –-x 仅可执行 rw- 可读可写 -wx 可写可执行 r-x 可读可执行 rwx 可读可写可执行 —– 无权限 Linux 中权限数值表示在 chmod 会用到,用三个 8 进制位表示。 Linux 基本命令 ls 格式:ls [选项] [目录或文件] 功能:对于目录,列出该目录下的所有子目录与文件;对于文件,列出文件名以及其他信息。...

September 30, 2018

VPS1:购买以及设置

前言 拥有一台自己的服务器是十分有必要的。 连接服务器 Windows 可以用 putty,使用 ssh 登陆,然后在 ssh 设置中添加自己的私钥,就可以连了。 Mac 的话直接用系统自带的终端 ssh -p [port] [user]@[ip] 用户设置 默认登陆的是 root 用户,但是这样是不安全的,我们可以建立管理员用户,然后只允许管理员用户切换到 root,再禁止 root 的 ssh 登陆,这样我们要使用 root 就只能先 ssh 登陆管理员账户,然后再使用密码切换到 root。 新建一个用户 useradd [user] 将用户添加至管理员组 usermod –g wheel [user] 修改/etc/pam.d/su 配置 去掉这行的注释,就完成了禁止普通用户切换 root #auth required pam_wheel.so use_uid 修改/etc/ssh/sshd_config 将 PermitRootLogin 选项改为 PermitRootLogin no 这样就禁止了 root 直接登陆。 ssh 设置 这个在用户文件夹下的.ssh/authorized_keys 中可以添加 ssh 的公钥,然后就可以使用不同的私钥链接服务器了,保险起见得保证 从修改文件到确认可以用修改后的钥匙登陆前 最好都保持有一个终端窗口连在服务器上,这样玩意出问题还可以再次改那个文件。 OK 然后就可以愉快地在服务器中安装各种软件了……附上一些现成代码 useradd -g wheel admin passwd admin echo "" >> /etc/pam....

September 30, 2018

YubiKey1:个人安全与YubiKey

个人网络安全之重要性 在这个数字化时代,网络安全变得日益重要,各种信息极其容易被窃取(比如说斯诺登事件)。因此加密和认证就显得极其重要,而 YubiKey 就是这样一个简易的设备(支持 OTP、公钥加密签名、U2F 协议)。 关于 YubiKey 据 Wikipedia 描述:YubiKey 是由 Yubico 生产的身份认证设备,支持一次性密码(OTP)、公钥加密和身份认证,以及由 FIDO 联盟(FIDO U2F)开发的通用第二因素(U2F)协议。它让用户可以透过提交一次性密码或是使用设备产生的公开/私密金钥来安全地登录自己的帐户。针对不支持一次性密码的网站,YubiKey 也可以存储静态密码。Facebook 使用 YubiKey 作为员工凭证;Google 同时为雇员和用户提供支持。还有一些密码管理器也支持 YubiKey。 作为键盘设备(HID) 这是它主要介绍的功能,能够模拟键盘设备向电脑输入一串生成的密码,兼容性最好。其中还包含多种模式:OTP、Static、Challenge-Response、HTOP, OTP:KEY_ID + AES(AES_KEY, SECRET, COUNT++)即生成的密码包含明文的 KEY_ID 和对称加密的( SECRET 和计数器)。第一次使用前需要把 KEY_ID,AES_KEY,SECRET 提交至验证服务器(Yubico 提供或者自己搭建),之后应用程序每次通过服务器验证密码的可靠性(解码后 SECRET 对应、COUNT 增大(防止重放攻击))。 Static:静态密码。顾名思义,每次生成固定的一串密码(并没有什么用)。 Challenge-Response:HMAC(SECRET, INPUT)即可以通过 HID 接口给定一个输入,输出 HMAC 的计算结果。输入需要本地代码实现。 HOTP:HMAC(SECRET, COUNTER++)算法与 Challenge-Response 类似,然而使用累加计数器代替了输入,并且 HOTP 是一个标准协议,许多网站和设备都兼容该标准。 在 YubiKey 中包含两个配置插槽,每一个插槽可以单独配置以上模式中的其中一种,分别通过短触和长触来选择输入。 不过需要注意的是:以上都是基于对称加密的算法,也就是说,只要服务器端(验证服务器)的密文被泄漏,所有的信息理论上都可以进行伪造。 U2F U2F 是一个开源的认证标准协议,使用非对称加密算法,在每次需要认证是设备可以对 challenge 信息使用私钥进行签名来完成认证。作为一个开源的标准协议,Google、Dropbox 等网站都支持这种协议的两步验证,然而现阶段浏览器端仅有 Chrome 支持。 OpenPGP Smart Card YubiKey 还可以作为标准的 OpenPGP Smart Card 使用,用来存储 PGP 私钥(设备中私钥是可写不可读的,解密/签名操作在设备上完成)。...

September 30, 2018

YubiKey2:配置和gnupg

设置 yubikey 讲完了安全模型,就可以开始设置 YubiKey 了 需要设置的有这些: 次重要密码导入 slot1 yubikey 的 pin(Masterpin) 管理员 8 位 pin(特殊 pin) GPGkey(因为需要备份,我们从外部导入) PIV(Masterpin) U2F 从简单的开始 初始化 下载 yubikey manager,然后打开所有功能。在 OTP 里设置 slot1 和 slot2 U2F 在支持的网站里双重验证下添加 key,然后按一下 yubikey 就行了 PIV 下载 yubikey PIV manager,按照提示设置就行了。 GPG 这个比较复杂,单独出来说。 安装 gnupg 这是个专门用于 gpg 的软件,设置可以参考我 mac 设置那篇文章。 生成要最终导入 yubikey 的密钥 虽然有些 yubikey(比如说我的 4-NEO)不支持 4096 位密码,但主密钥还是可以生成 4096 的,最后只要把子密钥导入就行了。 gpg --full-generate-key Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection?...

September 30, 2018