我在笔记本电脑上创建新的SSH密钥时设置了密码 . 但是,正如我现在意识到的那样,当您尝试在一小时内通过SSH多次提交(Git和SVN)远程位置时,这非常痛苦 .
我能想到的一种方法是删除我的SSH密钥并创建新密钥 . 有没有办法删除密码,同时仍然保持相同的密钥?
简短回答:
$ ssh-keygen -p
然后,这将提示您输入密钥文件位置,旧密码短语和新密码短语(可以留空以使其没有密码短语) .
如果你想在没有提示的情况下在一行上完成所有操作:
$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
Important: 请注意,在执行命令时,它们通常会以纯文本形式记录在 ~/.bash_history 文件(或类似文件)中,包括提供的所有参数(即本例中的密码) . 因此,除非您有特殊原因,否则建议您使用第一个选项 .
~/.bash_history
您可能需要考虑使用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复制到远程计算机并将其添加到远程钥匙串 .
你可以阅读更多here和here .
$ ssh-keygen -p 为我工作
打开git bash . 粘贴: $ ssh-keygen -p
按Enter键进入默认位置 .
输入旧密码
输入新密码 - BLANK
确认新密码 - BLANK
BOOM为git push输入密码的痛苦已经消失 .
谢谢!
3 回答
简短回答:
然后,这将提示您输入密钥文件位置,旧密码短语和新密码短语(可以留空以使其没有密码短语) .
如果你想在没有提示的情况下在一行上完成所有操作:
Important: 请注意,在执行命令时,它们通常会以纯文本形式记录在
~/.bash_history
文件(或类似文件)中,包括提供的所有参数(即本例中的密码) . 因此,除非您有特殊原因,否则建议您使用第一个选项 .您可能需要考虑使用ssh-agent,它可以缓存密码短语一段时间 . 最新版本的gpg-agent也支持ssh-agent使用的协议 .
您可能希望将以下内容添加到.bash_profile(或等效文件)中,该文件在登录时启动ssh-agent .
在一些Linux发行版(Ubuntu,Debian)上你可以使用:
这会将生成的ID复制到远程计算机并将其添加到远程钥匙串 .
你可以阅读更多here和here .
$ ssh-keygen -p
为我工作打开git bash . 粘贴:
$ ssh-keygen -p
按Enter键进入默认位置 .
输入旧密码
输入新密码 - BLANK
确认新密码 - BLANK
BOOM为git push输入密码的痛苦已经消失 .
谢谢!