SSH-Agentはリモートbashスクリプトを介して動作できますか?

SSH-Agentはリモートbashスクリプトを介して動作できますか?

サーバーAに配布するソースファイルの一部をインポートするには、サーバーAはsvn + sshを介してサーバーBに接続する必要があります。私の展開スクリプトは、次のようにローカル開発コンピュータで実行されます。

ssh serverA 'bash -s' < deploy.sh 

サーバーAとサーバーBの間にパスワードのない公開/秘密鍵ペアが設定されています。サーバーAのローカルセッションにログインしたときにキーチェーン設定を行いましたが、サーバーBへのsvn + ssh接続は問題ではありませんでした。 Deploy.shスクリプトは、ローカルセッションのサーバーAで正常に実行されます。ただし、開発ボックスでSSHを介して接続すると、同じスクリプトはリモートで実行されません。

サーバーAからリモートでコマンドを実行するときにサーバーBが接続を許可するように、デプロイスクリプトでssh-agentを呼び出すにはどうすればよいですか?

答え1

-A次のように認証プロキシ接続を転送するオプションを試してください。

ssh -A serverA 'bash -s' < deploy.sh

答え2

~/.ssh/configあるいは、より良い方法は、ユーザーが開始したすべての接続に影響を与えるようにシステムに追加するか、すべてのホストで使用するか、システム全体のSSHクライアント構成に追加することです。この方法でSSHを使用するすべてのアプリケーションは利点を享受し、設定を1つの場所に維持するだけです。

SSHのマニュアルページから抜粋した内容もご覧ください。

 -A      Enables forwarding of the authentication agent connection.  This can also be specified on a per-host basis in a configuration file.

         Agent forwarding should be enabled with caution.  Users with the ability to bypass file permissions on the remote host (for the agent's
         UNIX-domain socket) can access the local agent through the forwarded connection.  An attacker cannot obtain key material from the agent,
         however they can perform operations on the keys that enable them to authenticate using the identities loaded into the agent.

関連情報