たとえば、パスワードを入力するたびにgit
パスワードssh
を覚えておきたいと思います。
だから構成しました。ssh-agent
私も追加しAddKeysToAgent yes
ました~/.ssh/config
今走ると、ssh-add
すべてが大丈夫でしょう。しかし、なければ動作しません。 (毎回パスワードを入力する必要があります。)
私はssh-add
initスクリプトに追加できることを知っていますが、毎日必要としないので、それは私が望むものではありません。それがAddKeysToAgent yes
目的だと思いましたか?
私はssh-agent
systemdサービスから始めましたSSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket
。
修正する
テストのためにサービスとSSH_AUTH_SOCKを削除しました。バックアップして実行し、eval $(ssh-agent)
ログインしてssh pi@my-ip
パスワードを入力してもう一度実行してください。それでもパスワードプロンプトです。だからこれはシステム的な問題ではないようです。
アップデート2
AddKeysToAgent yes
最初の行に移動し、evalを使用して問題を解決しました。
答え1
さて、だから質問はです~/.ssh/config
。
Host awesomehost.tld
User user
IdentityFile ~/.ssh/id_rsa
AddKeysToAgent yes
そうしてこそ
Host awesomehost.tld
User user
IdentityFile ~/.ssh/id_rsa
Host *
AddKeysToAgent yes
または
AddKeysToAgent yes
Host awesomehost.tld
User user
IdentityFile ~/.ssh/id_rsa
答え2
systemdサービスを開始する代わりに、シェル起動スクリプト(〜/ .bashrcなど)に次のコードを追加できます。
if ! pgrep -u "$USER" ssh-agent > /dev/null; then
ssh-agent > "$XDG_RUNTIME_DIR/ssh-agent.env"
fi
if [[ ! "$SSH_AUTH_SOCK" ]]; then
eval "$(<"$XDG_RUNTIME_DIR/ssh-agent.env")"
fi
私もssh-agent
(ユーザーの)システムサービスを運営するのに苦労しました。関連部品~のSSHエージェント部分~のSSHキー記事~へアーチスウィキ役に立つかもしれません。上記の方法は非常に効果的であり、選択肢を見つける理由はまったくありません。
お役に立てば幸いです。