web-dev-qa-db-ja.com

gitをWindows上のSSHキーのパスフレーズを要求しないようにするにはどうすればいいですか?

私はgit bashを使っていて、ssh-keygenを使ってsshキーを設定しています。レポジトリで何かをするたびに、/c/Users/jankiewj/.ssh/id_rsaのパスフレーズを聞いてください。そのパスフレーズを無効にする方法はありますか。

29
jcubic

これはgit bashで実行できます。

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

2番目のコマンドでパスフレーズを要求しますが、それで終わりです。あなたがする必要があるそれぞれの追加のアクション(これはかつてパスフレーズを必要としました)はパスフレーズをあなたに尋ねません(以下のスクリーンショットの例を見てください):

adding pass phrase in git bash on Windows

44
jcubic

もう少し良い永続的な解決策は、Windowsでgit bashを開くときにssh-agentを自動的に起動することです。以下をコピーして.profileまたは.bashrcに貼り付けることができます。私はそれを.profileに載せることを好みます。

env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
Elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env

この解決策は、このgithubのヘルプ記事から をとった

3
velval

私がそれを推薦したいかどうかわからないが、あなたがキーを作成してパスワードを設定するように頼んだとき、ただエンターを押してパスワードをスキップする。

ssh-keygenの使用方法については、このリンクをご覧ください。 https://help.github.com/articles/working-with-ssh-key-passphrases/

おそらくssh-agentがあなたを何らかの形で助けてくれるでしょう。しかし、あなたの現在のシステムを知らずにはわからない。

2
David Bern

レポジトリの場所にこのgitコマンドを入力します。 "ssh-keygen -p"これにより、キーファイルの場所、古いパスフレーズ、および新しいパスフレーズ(これはパスフレーズがない場合は空白のままにします。新しいパスワードには何も入力しないでください。パスフレーズが削除されます

0
bharti