windows摆脱ssh私钥密码

看SO上说,私钥设置密码的原因是如果私钥被别人access了,至少还有最后一道防线。
其实这个说法挺牵强的,因为私钥在设计上本来就应该是见光死的,被人看到了就是万策尽。给私钥加上一个密码反而还需要人去记忆这个密码,也就是偏离了使用keypair进行认证的本质。
用户会想尽办法摆脱再输入一次密码的痛苦,想方设法地使用各种工具保存密码,最终还是失去了给私钥上密码的意义。

总之,在Win下倒腾了大半个下午,终于把整体的流程搞清楚了,在此记录一下:

私钥含有密码(不然就是加密的)->使用此私钥需要先使用密码进行解密->git,openSSH可以帮助我们记录密码,省去这个步骤(下述展示使用openSSH的做法)

首先,启用openSSH服务端:开始 > 服务 > 找到“openSSH Authentication Agent” > “启动类型”选择自动(延迟启动)

否则将找不到ssh agent:

> ssh-add
Error connecting to agent: No such file or directory

此时就可以在命令行使用ssh-agentssh-add之类与Linux等价的命令了。

> ssh-add <file-to-private-key>

输入一次密码之后,openSSH会记住这个私钥的密码,就不必再输入了。笔者使用的VScode应当是调用openSSH连接远程服务器,所以执行此命令之后,VScode不再提示输入私钥的密码。

查看ssh-agent都记住了哪些私钥的密码:

> ssh-add -l
3072 (redacted) (RSA)

如需删除私钥的密码,则需使用其对应的公钥,这个公钥可以通过ssh-keygen进行导出:

> ssh-keygen -y -f /path/to/private/key

> ssh-add -d /path/to/public/key

此时还需要再输入一次私钥的密码= =

posted @   橙子和雪  阅读(528)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示