当前位置:  开发笔记 > 运维 > 正文

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

如何解决《如何在不创建新密钥的情况下删除SSH密钥的密码?》经验,为你挑选了3个好方法。

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

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



1> Torsten Mare..:

简短回答:

$ ssh-keygen -p

然后,这将提示您输入密钥文件位置,旧密码短语和新密码短语(可以留空以使其没有密码短语).

如果你想在没有提示的情况下在一行上完成所有操作:

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

重要提示:请注意,在执行命令时,它们通常会~/.bash_history以纯文本形式记录在您的文件(或类似文件)中,包括提供的所有参数(即本例中的密码).因此,除非您有特殊原因,否则建议您使用第一个选项.请注意,您仍然可以使用-f keyfile而无需指定-Pnor -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`
-1表示用户在终端输入密码,并通过`〜/ .bash_history``访问.最好键入:``$ cd~/.ssh && ssh-keygen -f id_dsa -p``
可能值得添加一行说明这将覆盖现有文件而不提示新位置.

2> mlambie..:

您可能希望将以下内容添加到.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-agent吗?

3> 小智..:

$ ssh-keygen -p 为我工作

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

按Enter键进入默认位置.

输入旧密码

输入新的密码 - BLANK

确认新的密码 - BLANK

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

谢谢!

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有