必要に応じてssh-addを実行する方法は? SSH_ASKPASSとして機能できますか?

必要に応じてssh-addを実行する方法は? SSH_ASKPASSとして機能できますか?

暗号化されたSSHキーを使用して1日に数回SSHを実行したいと思います。これはuser@localセキュリティと使いやすさの間の良いバランスです。user@remotessh-agent

ssh-addまた、実行する前に実行することを覚えておく必要はありませんssh。初めてパスワードが必要なときにパスワードの入力を求められ、自動的にパスワードを8時間記憶したいと思います。

ssh-addだから:私が知っている限り、あなたが望むパスワードを提供しないことを除いて、おおよそ使用されている場所で使用したいと思います。私の理解は正しいですか?もしそうなら、確かな解決策はパスワードを要求して実行してからパスワードを再出力するスクリプトを書くことです。これは正しいアプローチのように聞こえますか?もっと良い方法がありますか?そうでない場合、このスクリプトを起動するのに役立つアドバイスは1つか2つありますか?$SSH_ASKPASSssh-addsshssh-addssh

(私はLinuxコンソール、xterm、およびemacs*shell*バッファでsshを使用しています。Xの観点からは、このソリューションには素晴らしい作業は必要ありません。)

答え1

私は本質的に同じ解決策を探していて、2つの異なる家庭で役に立つ2つの解決策を見つけました。

  • Michael J. Schultzは次のような記事を書いて問題を解決しました。SSHシェルエイリアス。それを使う

    ssh-add -l > /dev/null || ssh-add
    

    ssh-agentにロードされたキーがあることを確認し、そうでない場合はssh-addを実行してください。彼は自分が解決策を書く方法が自分のユースケースに適していましたが、誰にも当てはまるわけではないと指摘しました。

  • Raúl Benenciaは次のようなビデオを書きました。odsa特定のホストに必要なキーを自動的に見つけてssh-agentにロードします。

答え2

私が同じリクエストを処理する方法は、MikeがMichaelについて書いたのと似ています。

~/bin/sshmyvps

#!/bin/bash
if ! ssh-add -l|grep -q vpsaccess
then
    ssh-add -t 2h ~/ssh-keys/vpsaccess.key
fi
ssh  [email protected]

主な違いは、私が探しているものではないということです。どの特定のキーに対してのみキーをロードし、限られた時間だけ有効にします。

答え3

~からオープンSSH 7.2クライアント設定オプションがありますAddKeysToAgent

ファイルに以下を追加します~/.ssh/config

AddKeysToAgent yes

リリースノートから:

  • ssh(1): "yes", "no", "ask" または "confirm" に設定できる AddKeysToAgent クライアントオプションを追加します。デフォルトは「no」です。有効にすると、認証中に使用された秘密鍵が実行されている場合はssh-agentに追加されます(「confirm」に設定すると確認が有効になります)。

関連情報