如何删除的SSH密钥的密码,而无需创建一个新的关键?如何删除的SSH密钥的密码,而无需创建一个新的关

2019-06-14 07:55发布

我创造我的笔记本电脑一个新的SSH密钥时设置的密码。 但是,正如我现在意识到,这是相当痛苦的,当你试图去提交( GIT中和SVN )在一个小时的远程位置通过SSH很多次。

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

Answer 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的协议。



Answer 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复制到远程计算机,并将其添加到远程钥匙串。

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



Answer 3:

$ ssh-keygen -p为我工作

开业庆典的git。 粘贴: $ ssh-keygen -p

按下回车键的默认位置。

输入密码老

输入新密码 - BLANK

确认新密码 - BLANK

BOOM进入了混帐推密码的疼痛消失了。

谢谢!



文章来源: How do I remove the passphrase for the SSH key without having to create a new key?