web-dev-qa-db-ja.com

ssh-addによって追加されたIDを保存して永続化

最近、opensshをセットアップして、gitで使用できるようにしました。

それを設定する過程で( この記事 のように)コマンドを実行しました:

$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/<name of key>

しばらくして、ログアウトしてからログインし直した後、git Pushエラーが発生しました。このエラーの解決策は、同じコマンドを再度実行することでした。

どうしたらいいか教えてください

  • ssh-agent実行中なので、新しいものを開始する必要はありません
  • 追加したキーを覚えておくと、毎回追加する必要がなくなります

明確にするために、私はzshを使用しているため、特定のbash機能が.zshrcで機能しません。

18
timotree

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を参照してください。

21
Jakuje

これを~/.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
3
Savitoj Singh