回答:
SSHエージェントを起動したら:
eval $(ssh-agent)
秘密鍵を追加する必要があります:
ssh-add
これにより、パスフレーズが1回だけ要求されます。公開鍵をGithubにアップロードした場合は、プッシュを許可する必要があります。
macOSでキーを永続的に保存するには:
ssh-add -K
これは、ユーザーのキーチェーンに保存することにより、いったん閉じて再度開いた後も保持されます。
git pull
、もう一度パスワードの入力を求めます。
ssh-add -K
ユーザーのキーチェーンに保存することにより、いったん閉じて再度開いた後も保持されます。
ssh-add -K
以下を与える:unknown option -- K usage: ssh-add [options] [file ...] Options: -l List fingerprints of all identities. -L List public key parameters of all identities. -k Load only keys and not certificates. -c Require confirmation to sign using identities -t life Set lifetime (in seconds) when adding identities. -d Delete identity. -D Delete all identities. -x Lock agent. -X Unlock agent. -s pkcs11 Add keys from PKCS#11 provider.
-K
アップル固有です。help.github.com/articles/…を
これは、OS X El Capitan(10.11)からmacOS Sierra(10.12)にアップグレードしてから、再起動後に私に起こっています。ssh-add
解決策は一時的に働いていたが、別の再起動の間で保持されません。
永続的な解決策は~/.ssh/config
、UseKeychain
オプションを編集(または作成)して有効にすることでした。
Host *
UseKeychain yes
ssh-add -K /Users/***/.ssh/git/id_rsa
しかしそれはターミナルの再起動後もまだ機能していなかった...ありがとう。
あなたが試した場合ssh-add
、あなたはまだあなたのパスフレーズを入力するように求めている、次に使用してみてくださいssh-add -K
。これにより、パスフレーズがキーチェーンに追加されます。
更新:macOS Sierraを使用している場合、上記が機能しなくなる可能性があるため、別の手順を実行する必要がある可能性があります。次のものをに追加します~/.ssh/config
。
Host *
UseKeychain yes
私は以下を試します:
SSH_ENV=$HOME/.ssh/environment
# start the ssh-agent
function start_agent {
echo "Initializing new SSH agent..."
# spawn ssh-agent
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
echo succeeded
chmod 600 ${SSH_ENV}
. ${SSH_ENV} > /dev/null
/usr/bin/ssh-add
}
if [ -f "${SSH_ENV}" ]; then
. ${SSH_ENV} > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
zsh
ます。これを追加するだけ.zshrc
id_rsa
。カスタム名がある場合は、例を使用する必要があります。/usr/bin/ssh-add ~/.ssh/custom_filename
Windowsでうまくいったのは次のとおりです(私は最初のリポジトリからコードを複製しました):
eval $(ssh-agent)
ssh-add
git pull
そのとき、最後にもう一度パスフレーズを尋ねました
クレジット:ソリューションは/unix/12195/how-to-avoid-being-asked-passphrase-each-time-i-push-to-bitbucketから取得されました
これを〜/ .ssh / configに追加してみてください:
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
...秘密鍵の名前がid_rsaであると仮定します
上記の解決策が私にとってうまくいかない場合、チェックすべきことの1つは、あなたが実際に公開鍵も持っていることです(通常id_rsa.pub
)。珍しいことではありませんが、それが原因でした。
秘密鍵から公開鍵を作成するには:
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
私は別の解決策を試しますが、何の助けにもなりません。しかし、Bitbucket.com seamsからのこの手順(私のGitBash SSH環境は常にパスフレーズを要求します。どうすればよいですか?)はうまく機能します。
アイデアは:
あなたは~/.bashrc
ファイルを作成します
フォロースクリプトを追加:
SSH_ENV=$HOME/.ssh/environment
# start the ssh-agent
function start_agent {
echo "Initializing new SSH agent..."
# spawn ssh-agent
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add
}
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
バッシュを再実行