2016-07-12 9 views
1

私はBitbucketで2つの異なるアカウント用に2つのssh鍵を持っています。以下SSH鍵は起動エージェントの後にパスフレーズを入力するように頼みます

私bachrcファイルです:

# Note: ~/.ssh/environment should not be used, as it 
#  already has a different purpose in SSH. 

env=$HOME/.ssh/agent.env 

# Note: Don't bother checking SSH_AGENT_PID. It's not used 
#  by SSH itself, and it might even be incorrect 
#  (for example, when using agent-forwarding over SSH). 

agent_is_running() { 
    if [ "$SSH_AUTH_SOCK" ]; then 
     # ssh-add returns: 
     # 0 = agent running, has keys 
     # 1 = agent running, no keys 
     # 2 = agent not running 
     ssh-add ~/.ssh/id_rsa ~/.ssh/id_rsa_2 -l >/dev/null 2>&1 || [ $? -eq 1 ] 
    else 
     false 
    fi 
} 

agent_has_keys() { 
    ssh-add -l >/dev/null 2>&1 
} 

agent_load_env() { 
    . "$env" >/dev/null 
} 

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

if ! agent_is_running; then 
    agent_load_env 
fi 

# if your keys are not stored in ~/.ssh/id_rsa or ~/.ssh/id_dsa, you'll need 
# to paste the proper path after ssh-add 
if ! agent_is_running; then 
    agent_start 
    ssh-add ~/.ssh/id_rsa ~/.ssh/id_rsa_2 
elif ! agent_has_keys; then 
    ssh-add ~/.ssh/id_rsa ~/.ssh/id_rsa_2 
fi 

unset env 

agent_stop() { 
    if [ ${SSH_AGENT_PID+1} == 1 ]; then 
     ssh-add -D 
     ssh-agent -k > /dev/null 2>&1 
     unset SSH_AGENT_PID 
     unset SSH_AUTH_SOCK 
    fi 
} 

agent_stop 

はなぜagent_stopを呼ぶのですか?

これはテスト用です。私は、agent_stopが呼び出されると、すべてのsshキーがエージェントから削除され、git bashを再び開くと、エージェントは自動的にsshキーを追加することを理解しました。

ただし、id_rsaだけでは、パスフレーズの入力を求められません。毎回id_rsa_2プロンプトが表示されます。

P/S:id_rsa_2の公開鍵がBitbucketに追加されています。

これは何が欠けていますか?

+0

パスフレーズでSH-エージェントが要求されます。 – gzh

+0

こんにちは@gzh:ssh-keygenでsshを生成するときは、すべてそれを行います。どうやってこれを克服できますか? –

+3

ssh-keygenを実行すると、パスフレーズが必要かどうか尋ねるステップがあります。私のメモリが正しく機能している場合は、入力をクリックしてスキップしたり、パスフレーズを入力したりできます。 – gzh

答えて

0

あなたはSSH-keygenのを実行すると、1つのステップは、あなたが パスフレーズが必要かどうかを尋ね、あなたは私の メモリが正しく

を私に仕えるならば、パスフレーズをスキップしたり、入力するために入力してクリックすることができますがあり注gzh

1

から:パスフレーズ

cd 
ssh-keygen -t rsa -f ".ssh/mykey" -C "key for xxx acess" -q -P "" 

なしのSSHキーを生成するなら、あなたはSを必要としませんあなたが入力したパスフレーズをキー・ペア、私見を生成するときにため、すべての

+0

私はそれを見ていきます。共有ありがとう –

関連する問題