最近、openssh
をセットアップして、git
で使用できるようにしました。
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/<name of key>
しばらくして、ログアウトしてからログインし直した後、git Push
エラーが発生しました。このエラーの解決策は、同じコマンドを再度実行することでした。
ssh-agent
実行中なので、新しいものを開始する必要はありません明確にするために、私はzshを使用しているため、特定のbash機能が.zshrcで機能しません。
ssh-agent
とは何ですか?どのように機能しますか?ssh-agent
は、復号化されたキーをメモリとセッションに安全に保持します。再起動/再ログインの間、復号化されたキーを保持するための合理的で安全な方法はありません。
ssh-agent
の起動を自動化追加
[ -z "$SSH_AUTH_SOCK" ] && eval "$(ssh-agent -s)"
~/.bashrc
またはその他の起動スクリプト(~/.zshrc
)に追加します。
キーは、最初の使用時に、追加時に自動的に追加できます
AddKeysToAgent yes
あなたの~/.ssh/config
に。
~/.ssh/config
の詳細については、man ssh_config
を参照してください。
これを~/.bashrc
に追加
これは、端末なしで別のセッションを開くと、ssh-agentが自動的に開始されることを意味します
if [ -z "$SSH_AUTH_SOCK" ] ; then
eval `ssh-agent -s`
fi
キーをエージェントに追加する必要がある場合は、これも追加します
if [ -z "$SSH_AUTH_SOCK" ] ; then
eval `ssh-agent -s`
ssh-add ~/.ssh/<your private ssh key>
fi