複数のSSHキーがあり、必要です。私はしばしば1つのセッションでこれらすべてを必要とし、正しいサーバーに対して正しいものを自動的に選択するようにsshを設定するので、ログイン時にそれらをすべて追加するスクリプトを書く必要があると思いました。私はこれを入れました.profile
:
eval $(ssh-agent)
ssh-add ~/list/of/ ~/paths/to/keys
これはログイン時にキーを追加しようとし、私が使用したパスワードを尋ねるのでうまくいきますssh-askpass
(小文字に注意してください:私の言葉はプログラム、環境変数ではなく)。
pass
ただし、さまざまなSSHキーのパスワードを含むパスワードを保存するためにも使用されます。私はgpg認証のためのパスワードを知っていますが、パスに保存されているpass
すべてのパスワードを確実に覚えていないので、sshでパスワードの入力を求めるのは役に立ちません。
ssh-add
別のパスワードを要求するにはどうすればよいですかpass
(その後、pass
sshは別のsshパスワードを要求するのではなくgpg認証パスワードを求めるメッセージを表示しますか?)
のパスワードはpass
ssh idファイルと同じ方法で名前が付けられていませんが、同様のパターンで名前が付けられます(たとえば、ssh idの場合、id_rsa_personal
そのパスワードは(〜/ .password-store /)ですssh/personal
)。
たぶんパスラッパーを完全に迂回するネイティブGPGスクリプトがより良いでしょうか?
すべての助けに感謝!
答え1
これは私にとって効果的です。
if [[ -v PASS_PATH ]]; then
pass $PASS_PATH
exit $?
fi
for I in \
"$HOME/.ssh/id_key_1_ed25519;your/path/in/pass/for/key1" \
"$HOME/.ssh/id_key_2_rsa;your/path/in/pass/for/key1"
do
SSHKEYPATH=${I%;*}
PASS=${I#*;}
SSH_ASKPASS_REQUIRE="force" SSH_ASKPASS="$0" PASS_PATH="$PASS" ssh-add $SSHKEYPATH < /dev/null
done
これは主に以下に基づいています。ファイルからssh-add読み取りパスワードをどのように作成できますか?そして実際にAskpassプログラムを呼び出すには< /dev/null
forceを使用してください。ssh-add