如何在不建立新密鑰的狀況下刪除SSH密鑰的密碼?

我在筆記本電腦上建立新的SSH密鑰時設置了密碼。 可是,正如我如今意識到的那樣,當您嘗試在一小時內經過SSH屢次提交( GitSVN )遠程位置時,這很是痛苦。 git

我能想到的一種方法是刪除個人SSH密鑰並建立新密鑰。 有沒有辦法刪除密碼,同時仍然保持相同的密鑰? 緩存


#1樓

簡短回答: bash

$ ssh-keygen -p

而後,這將提示您輸入密鑰文件位置,舊密碼短語和新密碼短語(能夠留空以使其沒有密碼短語)。 ssh

若是你想在沒有提示的狀況下在一行上完成全部操做: spa

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

重要提示:請注意,在執行命令時,它們一般會以純文本形式記錄在~/.bash_history文件(或相似文件)中,包括提供的全部參數(即本例中的密碼)。 所以,除非您有特殊緣由,不然建議您使用第一個選項。 請注意,您仍然可使用-f keyfile而沒必要指定-P-N ,而且密鑰文件默認爲~/.ssh/id_rsa ,所以在許多狀況下甚至不須要它。 code

您可能須要考慮使用ssh-agent,它能夠緩存密碼短語一段時間。 最新版本的gpg-agent也支持ssh-agent使用的協議。 get


#2樓

您可能但願將如下內容添加到.bash_profile(或等效文件)中,該文件在登陸時啓動ssh-agent。 it

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)上你可使用: io

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加載私鑰文件,刪除密碼,而後覆蓋現有的私鑰文件。

相關文章
相關標籤/搜索