java 删除密钥对_如何在不创建新密钥的情况下删除SSH密钥的密码?

我在笔记本电脑上创建新的SSH密钥时设置了密码。 但是,正如我现在意识到的那样,当您尝试在一小时内通过SSH多次提交( Git和SVN )远程位置时,这非常痛苦。

我能想到的一种方法是删除我的SSH密钥并创建新密钥。 有没有办法删除密码,同时仍然保持相同的密钥?

#1楼

简短回答:

$ 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使用的协议。

#2楼

您可能希望将以下内容添加到.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复制到远程计算机并将其添加到远程钥匙串。

你可以在这里和这里阅读更多。

#3楼

$ ssh-keygen -p为我工作

打开git bash。 粘贴: $ ssh-keygen -p

按Enter键进入默认位置。

输入旧密码

输入新的密码 - BLANK

确认新的密码 - BLANK

BOOM为git push输入密码的痛苦已经消失。

谢谢!

#4楼

在Mac上,您可以在钥匙串中存储私人ssh密钥的密码,这样就可以透明地使用它。 如果您已登录,则可用,当您注销时,root用户无法使用它。 删除密码短语是一个坏主意,因为拥有该文件的任何人都可以使用它。

ssh-keygen -K

将其添加到~/.ssh/config

UseKeychain yes

#5楼

在Windows上,您可以使用PuttyGen加载私钥文件,删除密码,然后覆盖现有的私钥文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值