回答:
これはgit bashで実行できます:
eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa
2番目のコマンドでパスフレーズを要求しますが、それだけです。追加のアクション(パスフレーズが必要だった)を実行するたびに、パスフレーズが要求されることはありません(以下のスクリーンショットの例を参照してください)。
.bashrc
を開くたびにプロンプトが表示され、そのセッションではすべて設定されています。
~/.bashrc
し、投稿の行をそこに入力して保存する必要があります:) thx!
.bashrc
、スクリプトを使用して、.bash_profile
またはのいずれかに配置します.profile
。 ここに私の主要部分の抜粋があり.bash_profile
、それはまだ答えを探している人のためにこれを解決する必要があります。以下の回答に似ています。スクリプトの先頭でをロードしますが.bashrc
、該当しない場合はそのままにしておきます。注:id_rsa
プライベートSSHキー、および場合によってはパスに名前を付けたものへの参照を変更する必要があります。
少し優れた永続的な解決策は、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ヘルプ記事から引用したものです
.bashrc
あなたのソリューションはどう違いますか?Windows bashでは、各シェルは独立しているため、シェルの実行時にエージェントが実行されることはありません。
.bashrc
。sshパスフレーズの初回プロンプトのみ。私の命を守りました。ありがとうございました。
ssh-add -D
すべてのキーを削除できます。
推奨するかどうかはわかりませんが、キーを作成してパスワードの設定を求められたら、Enterキーを押してパスワードをスキップします。
使用方法については、このリンクをご覧くださいssh-keygen
:https :
//help.github.com/articles/working-with-ssh-key-passphrases/
おそらくssh-agent
何らかの形であなたを助けることができます。しかし、あなたの現在のシステムを知らずに確信はありません。
mvn release:perform
フェーズではパスフレーズを提供せずにリリースタグをチェックアウトしようとするため、その動作は私のMavenデプロイメントフローを壊していました。そのため、この問題はパスフレーズをクリアするだけで解決しました。
リポジトリの場所 " ssh-keygen -p " でこのgitコマンドを入力します。これにより、キーファイルの場所、古いパスフレーズ、および新しいパスフレーズ(パスフレーズを持たない場合は空白のままにすることができます)の入力を求められます。新しいパスワードには何も入力しないでください。パスフレーズが削除されます