首先感谢凑妈让我想起了半年多没有更新的blog,打算往上面丢点东西。
前几天在进某个东西的内测群时有这么一个答题认证
因为找不到截图了所以偷了别人的图
也就是说我们需要使用 ssh-keygen
工具对前面echo输出的校验码进行签名
echo 的 -n 参数表示不输出换行符 ssh-keygen 后的 -n 用来指定签名的用途
当时我翻了一下我的PGP密钥,发现刚好有用来验证的openssh一项。
于是我把子私钥和OpenSSH密钥导出到 C:\Users\listder\.ssh
下,分别保存成listder
和listder.pub
然后执行
|
|
结果却报错了
从报错的提示可以看出,这大概是权限问题,似乎是对于文件listder
(我们的私钥)它的权限过于开放了,可惜Windows操作系统下并没有chmod这样的东西,所以我打开Google,翻阅了几篇别人的blog,根据其他人的经验删除了继承
这么设置的话就只有文件的所有者才有对这个文件的访问权限。
引用ChatGPT的话
SSH 的最佳安全实践建议私钥文件仅限拥有者自己访问,典型的权限设置为 600(仅拥有者可读写)。这样可以确保只有密钥的拥有者可以读取和使用私钥。
这么一弄果然,之前的报错解决了,但是…
看起来似乎是格式出了问题,于是我用ssh-keygen生成了一份私钥进行对比
一边是BEGIN PGP PRIVATE KEY BLOCK
,一边是BEGIN OPENSSH PRIVATE KEY
,怪不得会报错
也就是说我们应该把PGP格式的私钥转换成openssh格式
查阅资料,发现在monkeysphere
下有一个叫做openpgp2ssh
的工具,刚好可以满足我们的要求
可是windows下没有openpgp2ssh,遂启动arch
然后不知道为什么arch安装不上monkeysphere
,貌似是少了agent-transfer
,折腾半天发现,于是改用debian,qwqagent-transfer
也装不上
|
|
然后把我们的文件保存到C:\Users\listder\.ssh
并重命名为listder
(记得改权限)
最后,Run!
总算是水完了,后来发现有个更简单的办法。。。我其实可以直接ssh-keygen
生成新的密钥,然后丢Github一路回车,没必要折腾这么久,qwq(