分享在Windows间迁移SSH密钥的小脚本,以及自动生成commit message的方法

写上一篇文章时,我还在迷茫博客的未来,但时间总会给人答案
为什么要共用密钥?
最近经常在多台电脑之间来回切换,每次推送代码到GitHub,如果都要重新配置SSH密钥,实在麻烦。
所以去网上找SSH验证原理了解一下,发现其实只要在两台电脑放相同的密钥对文件,GitHub就会认为这是同一台设备。于是写了简单个脚本方便自动化部署。
SSH验证原理
当客户端通过SSH连接GitHub服务器时,认证流程分为三个关键步骤:
生成随机字符串
服务器生成随机字符串(Challenge),用客户端预存的公钥加密后下发本地解密
客户端使用私钥id_rsa解密得到原始字符串,生成数字签名回传签名验证
服务器用存储的公钥id_rsa.pub验证签名有效性,匹配则授权访问
整个过程依赖非对称加密特性:
- 公钥加密的内容只能被对应私钥解密
- 私钥签名的数据可通过公钥验证来源
因此,只要在多台设备部署相同的密钥对,服务器就会视为同一客户端。
手动操作
手动操作只需要将可用的密钥对文件,转移到Windows的ssh文件夹即可,路径一般为%USERPROFILE%\.ssh
。即进入旧电脑的.ssh
文件夹中复制可用的id_rsa
和id_rsa.pub
并保存留,在新电脑的.ssh
文件夹释放密钥对文件。
SSH 密钥迁移工具
一个用于在Windows系统间迁移SSH密钥的批处理工具,支持备份和恢复模式。
功能特性
- 一键备份SSH密钥到脚本目录
- 自动恢复密钥到新设备的用户目录
- 操作日志记录功能
- 管理员权限自动检测
使用说明
备份模式(旧设备)
- 右键以管理员身份运行脚本
- 选择模式 1
- 脚本会自动将密钥备份到同级目录的
ssh_backup
文件夹
恢复模式(新设备)
- 将整个项目文件夹复制到新设备
- 运行脚本并选择模式 2
- 密钥会被还原到
%USERPROFILE%\.ssh
⚠️ 重要提示;
建议在恢复后执行权限重置:1
icacls "%USERPROFILE%\.ssh" /reset /T /C
AICommit2
@(tak-bro)[一个响应式CLI,使用Ollama、ChatGPT、Gemini、Claude、Mistral和其他AI生成git提交消息]
最近在开发过程中有对提交信息(commit message)的规范化需求,于是在网上翻了翻用于自动生成commit message的开源应用,其中感觉AICommit2的配置很方便,并且支持任何实现 OpenAI API 规范的服务。
我正好有腾讯混元大模型的免费包,而且混元也支持兼容OpenAI,尝试生成了几次commit message,效果还行。
AICommit2 的安装及配置
1 | npm install -g aicommit2 |
一般来说,任意的大模型API只要兼容了 OpenAI 的接口规范,都可以如上面这般配置,仅需要将相关的key
、model
和url
替换上即可。
使用方法
进入git存储库,并对其中的文件进行一定的操作后,使用命令将工作区中的文件更改添加到暂存区,即可使用AICommit2来帮助生成commit message
1 | git add <files...> |
👉 提示: 如果觉得
aicommit2
太长,可以使用缩写aic2
。