たとえば、 でパスワードを入力するたびにgit
、ssh
そのパスワードを記憶させたいです。
だから私は設定したssh-agent
私も追加しましAddKeysToAgent yes
た~/.ssh/config
今実行すればssh-add
すべて問題ありません。しかし、それがなければ動作しません(毎回パスワードを入力する必要があります)
init スクリプトに追加できることはわかっていますssh-add
が、毎日必要ではないので、それは望んでいません。それが何のAddKeysToAgent yes
ためのものかと思いましたが?
私はssh-agent
systemd サービスとして起動しますSSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket
。
アップデート
テストのために、サービスと SSH_AUTH_SOCK を削除しました。再起動して実行し、eval $(ssh-agent)
ログインしてssh pi@my-ip
パスワードを入力して、もう一度実行しました。それでもパスワード プロンプトが表示されます。したがって、systemd の問題ではないようです。
アップデート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
私はまた、(ユーザーの)systemdサービス経由で実行するのに苦労しました。関連セクションのssh-agent 部分のssh-keys の記事にアーチウィキ役に立つかもしれません。上記の方法は非常にうまくいったので、代替方法を探す必要はありませんでした。
これがお役に立てば幸いです。