如何在不创建新密钥的情况下删除SSH密钥的密码?
-
02-07-2019 - |
解决方案
简短回答:
$ ssh-keygen -p
然后会提示您输入密钥文件位置,旧密码短语和新密码短语(可以留空以使其没有密码短语)。
如果你想在没有提示的情况下在一行上完成所有操作:
$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
重要事项:请注意,在执行命令时,它们通常会以纯文本形式记录在〜/ .bash_history
文件(或类似文件)中,包括提供的所有参数(即在这种情况下的密码)。因此,除非您有特殊原因,否则建议您使用第一个选项。请注意,您仍然可以使用 -f keyfile
而无需指定 -P
或 -N
,并且密钥文件默认为 〜/ .ssh / id_rsa
,所以在很多情况下甚至不需要它。
您可能需要考虑使用ssh-agent,它可以缓存密码短语一段时间。最新版本的gpg-agent也支持ssh-agent使用的协议。
其他提示
您可能希望将以下内容添加到.bash_profile(或等效文件)中,以便在登录时启动ssh-agent。
if [ -f ~/.agent.env ] ; then
. ~/.agent.env > /dev/null
if ! kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
echo "Stale agent file found. Spawning new agent… "
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
else
echo "Starting ssh-agent"
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
在某些Linux发行版(Ubuntu,Debian)上,您可以使用:
ssh-copy-id -i ~/.ssh/id_dsa.pub username@host
这会将生成的ID复制到远程计算机并将其添加到远程钥匙串。
$ ssh-keygen -p
为我工作
打开git bash。粘贴: $ ssh-keygen -p
按Enter键进入默认位置。
输入旧密码
输入新密码 - BLANK
确认新密码 - BLANK
BOOM为git push输入密码的痛苦已经消失。
谢谢!
不隶属于 StackOverflow