openssh - 入力時にエージェントにキーを追加する

openssh - 入力時にエージェントにキーを追加する

たとえば、パスワードを入力するたびにgitパスワードsshを覚えておきたいと思います。

だから構成しました。ssh-agent

私も追加しAddKeysToAgent yesました~/.ssh/config

今走ると、ssh-addすべてが大丈夫でしょう。しかし、なければ動作しません。 (毎回パスワードを入力する必要があります。)

私はssh-addinitスクリプトに追加できることを知っていますが、毎日必要としないので、それは私が望むものではありません。それがAddKeysToAgent yes目的だと思いましたか?

私はssh-agentsystemdサービスから始めました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キー記事~へアーチスウィキ役に立つかもしれません。上記の方法は非常に効果的であり、選択肢を見つける理由はまったくありません。

お役に立てば幸いです。

関連情報