Java教程

windows摆脱ssh私钥密码

本文主要是介绍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

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

这篇关于windows摆脱ssh私钥密码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!