我创造我的笔记本电脑一个新的SSH密钥时设置的密码。 但是,正如我现在意识到,这是相当痛苦的,当你试图去提交( GIT中和SVN )在一个小时的远程位置通过SSH很多次。
我能想到的是,删除我的SSH密钥,并创造新的方法之一。 有没有办法删除密码,同时仍保持相同的密钥?
我创造我的笔记本电脑一个新的SSH密钥时设置的密码。 但是,正如我现在意识到,这是相当痛苦的,当你试图去提交( GIT中和SVN )在一个小时的远程位置通过SSH很多次。
我能想到的是,删除我的SSH密钥,并创造新的方法之一。 有没有办法删除密码,同时仍保持相同的密钥?
简短的回答:
$ 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。 粘贴: $ ssh-keygen -p
按下回车键的默认位置。
输入密码老
输入新密码 - BLANK
确认新密码 - BLANK
BOOM进入了混帐推密码的疼痛消失了。
谢谢!