在笔记本电脑上创建新的SSH密钥时,我设置了密码。但是,正如我现在意识到的那样,当您试图在一小时内多次通过SSH 提交(Git和SVN)到远程位置时,这非常痛苦。
我能想到的一种方法是删除我的SSH密钥并创建新的。有没有办法删除密码短语,同时仍然保持相同的密钥?
在笔记本电脑上创建新的SSH密钥时,我设置了密码。但是,正如我现在意识到的那样,当您试图在一小时内多次通过SSH 提交(Git和SVN)到远程位置时,这非常痛苦。
我能想到的一种方法是删除我的SSH密钥并创建新的。有没有办法删除密码短语,同时仍然保持相同的密钥?
Answers:
简短答案:
$ ssh-keygen -p
然后,这将提示您输入密钥文件位置,旧密码短语和新密码短语(可以将其保留为空白而没有密码短语)。
如果您想在没有提示的情况下全部完成所有操作,请执行以下操作:
$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
重要提示:请注意,执行命令时,它们通常会~/.bash_history
以纯文本格式(包括提供的所有参数)(即本例中的密码)记录在文件(或类似文件)中。因此,除非有特殊原因,否则建议您使用第一个选项。
请注意,尽管-f keyfile
无需指定-P
nor 仍然可以使用-N
,并且密钥文件默认为~/.ssh/id_rsa
,所以在许多情况下甚至不需要。
您可能要考虑使用ssh-agent,它可以将密码短语缓存一段时间。最新版本的gpg-agent还支持ssh-agent使用的协议。
ssh-keygen -p
在终端中运行。然后,它将提示您输入密钥文件(默认为我的正确文件~/.ssh/id_rsa
),旧密码(输入您现在的密码)和新密码(不输入内容)。
ssh-keygen -p -P oldpassphrase -N "" -f ~/.ssh/id_rsa
~/.bash_history
。最好输入:$ cd ~/.ssh && ssh-keygen -f id_dsa -p
$ ssh-keygen -p
为我工作
打开git bash。粘贴:$ ssh-keygen -p
按Enter键即可找到默认位置。
输入旧密码
输入新的密码-空白
确认新密码-空白
BOOM不再需要为git push输入密码的痛苦了。
谢谢!
$ ssh-keygen -p
并且您的密钥不在默认位置时说出(/Users/yourname/.ssh/id_rsa),则可以/Users/yourname/.ssh/yourkey
在提示时输入以下内容进行响应
您可能需要将以下内容添加到.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复制到远程计算机,并将其添加到远程钥匙串。
要更改或删除密码短语,我经常发现仅传递p
和f
标志是最简单的,然后让系统提示我提供密码短语:
ssh-keygen -p -f <name-of-private-key>
例如:
ssh-keygen -p -f id_rsa
如果要删除密码,请输入一个空密码。
删除或更改密码的示例运行如下所示:
ssh-keygen -p -f id_rsa
Enter old passphrase:
Key has comment 'bcuser@pl1909'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
将密码短语添加到没有密码短语的键时,运行看起来像这样:
ssh-keygen -p -f id_rsa
Key has comment 'charlie@elf-path'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
在Windows上,可以使用PuttyGen加载私钥文件,删除密码短语,然后覆盖现有的私钥文件。
在Mac上,您可以将ssh私钥的密码存储在钥匙串中,这使密码的使用变得透明。如果您已登录,则可以使用,当您注销时,root用户无法使用它。删除密码不是一个好主意,因为拥有该文件的任何人都可以使用它。
ssh-keygen -K
将此添加到 ~/.ssh/config
UseKeychain yes