简短回答:
$ 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 输入密码的痛苦已经消失。
谢谢!