我在筆記本電腦上建立新的SSH密鑰時設置了密碼。 可是,正如我如今意識到的那樣,當您嘗試在一小時內經過SSH屢次提交( Git和SVN )遠程位置時,這很是痛苦。 git
我能想到的一種方法是刪除個人SSH密鑰並建立新密鑰。 有沒有辦法刪除密碼,同時仍然保持相同的密鑰? 緩存
簡短回答: 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
您可能但願將如下內容添加到.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複製到遠程計算機並將其添加到遠程鑰匙串。 登錄
$ ssh-keygen -p
爲我工做
打開git bash。 粘貼: $ ssh-keygen -p
按Enter鍵進入默認位置。
輸入舊密碼
輸入新的密碼 - BLANK
確認新的密碼 - BLANK
BOOM爲git push輸入密碼的痛苦已經消失。
謝謝!
在Mac上,您能夠在鑰匙串中存儲私人ssh密鑰的密碼,這樣就能夠透明地使用它。 若是您已登陸,則可用,當您註銷時,root用戶沒法使用它。 刪除密碼短語是一個壞主意,由於擁有該文件的任何人均可以使用它。
ssh-keygen -K
將其添加到~/.ssh/config
UseKeychain yes
在Windows上,您可使用PuttyGen加載私鑰文件,刪除密碼,而後覆蓋現有的私鑰文件。