OpenSSHは、SSH構成ファイルを検索するときに$ HOMEを考慮しません。

OpenSSHは、SSH構成ファイルを検索するときに$ HOMEを考慮しません。

サーバー間のSSH接続をテストするいくつかの統合テストを作成しています。

現在のテストは人々のラップトップで実行されます。ユーザー(テストを実行しているユーザー)を妨げないように、特別にテスト用のカスタムファイルを含む一時ディレクトリを~/.ssh/config作成しました。./tmp/.ssh/configそれからHOME=/path/to/tmp。残念ながら、opensshは$HOMEssh設定または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文句はありません。ただし、存在して読める場合は、その内容が含まれます。これにより、ファイルをあまり扱うことなくテストできます。

セキュリティ上危険な場合がありますのでご注意ください。これらのパスを保護しないと、そのパスを知っている人は他のユーザーにローカル設定を注入できます。

おすすめ記事