サーバー間のSSH接続をテストするいくつかの統合テストを作成しています。
現在のテストは人々のラップトップで実行されます。ユーザー(テストを実行しているユーザー)を妨げないように、特別にテスト用のカスタムファイルを含む一時ディレクトリを~/.ssh/config
作成しました。./tmp/.ssh/config
それからHOME=/path/to/tmp
。残念ながら、opensshは$HOME
ssh設定またはIDファイルを検索しないことを発見しました。
SSHを介してホストに直接接続している場合は、-F
このフラグを使用して設定を明示的に設定できるので大丈夫です。ただし、Bastion 経由で SSH 経由でプロキシコマンドを使用する場合、ssh
設定ファイルはプロキシコマンドに渡されません。したがって、別のデフォルトのユーザー名(たとえば)を使用するカスタムSSH構成がある場合、その構成はプロキシコマンドと一緒には使用されません。
また、プロキシコマンドを「修正」することはできますが(ssh設定ファイルを引数として使用します)、opensshに環境変数を使用して(転送せずに)他の場所で設定/ IDファイルを見つけることができるかどうかを知りたいです。すべての後続のダウンストリームコマンドの設定ファイル)。を使用してssh-agentを変更できるので、SSH_AUTH_SOCK
プロファイルディレクトリも変更できるようにしたいです。
ベストアンサー1
ソースコードに従ってssh
パスワードファイルからホームディレクトリを取得します。成功しない場合は、HOME環境変数から取得してください。
Include
あなたができることは、各ユーザーに追加すること~/.ssh/config
です~/tmp/user/.ssh/config
。
含めるファイルが存在しなくてもssh
文句はありません。ただし、存在して読める場合は、その内容が含まれます。これにより、ファイルをあまり扱うことなくテストできます。
セキュリティ上危険な場合がありますのでご注意ください。これらのパスを保護しないと、そのパスを知っている人は他のユーザーにローカル設定を注入できます。