単純化された例:
host one
user cat
host two
hostname 2
host three
hostname 3
host *
hostname 1
host *
user apple
identityFile ~/.ssh/id_rsa
host y
hostname 7
host t
hostname 8
host *
user duck
identityFile ~/.ssh/quack
可能ですか?
最初のホストの上のホストはhost *
その値のみを継承し、2番目のホストはhost *
その下のホストからのみ継承します。
そうでなければこれを達成する方法はありますか?
答え1
私は何を知らない正確にここで達成したいのは3つです。
特に明記しない限り手動、各パラメータに対して最初に取得された値が使用されます。
Host
次の宣言(次Host
またはMatch
キーワードまで)を、キーワードの後に提供されるパターンの1つと一致するホストにのみ制限します。Host
/をMatch
別々の部分として考えないことが最善です。構成ファイルをいくつかの設定を含む1つの大規模構成として考えるのが最善です。ろ過。この回答では呼び出す必要があるため、「セクション」と呼びます。何。
単純化された例では常に一致する項目があるため、最初の項目はhostname 1
ファイルにhost *
次のすべての項目と「勝ちます」。最後のファイルの下のすべての内容は完全に役に立ちません。これは、2番目のファイルの下のファイルで、およびが早く表示されるためです。hostname
host *
host *
user
identityFile
host *
マニュアルには次のように明確に記載されています。
各パラメータで最初に取得した値を使用するため、ファイルの先頭にはより多くのホスト固有の宣言を提供し、最後に一般的なデフォルト値を提供する必要があります。
複数のHost *
セクションが許可されます。つまり、構文は壊れませんが、ほとんど意味がありません。複数回(複数回)使用するときに累積パラメータを使用しないと仮定する場合は、次の手順を検討してください。
隣接する
Host *
パーツ(1部、2部など)を1つのパーツで作成できます。Host *
可能であれば、セクションをマージしてください。Host *
マージする2つ以上のセクションにパラメータが表示されている場合は、最初のパラメータが「勝ち」、他のすべてのパラメータが削除されることに注意してください。各
Host *
セクションについて上から下へ:Host *
セクションが終わっておらず、ファイルの後半(つまりHost whatever
ファイルの後半セクション)に現れるパラメータが宣言されている場合、それ以降の宣言は関係なく、Host *
セクション(または前のセクション)のパラメータのために削除される可能性があります。部分)とにかく勝ちます。無関係なステートメントを削除します。削除するものが残らなくなるまで繰り返します。Host *
セクションは最後にはなく、ファイルの後半に表示されないパラメータ(つまり、ファイルHost whatever
の後のセクション)のみが含まれます。これは、このセクションが最後にある可能性があることを意味します。最後まで移動してください。Host *
結局、2つの部分があるかもしれません。その場合はマージしてください。
このプロセスは、Host *
構成ファイルの最後に正確なセクションを提供します。
Host *
このような場合、ファイルの終わりではない部分が意味を持ちます。
複数回使用したときに累積されるパラメータの場合。通常、順序が重要です。たとえば、
Host *
セクションを指定できます。IdentityFile
ファイルの先頭にあるので、いくつかの「基本」キー常に最初に試してください、所有者は誰でも構いません。これで、Host whatever
セクションで試行するキーを指定できます(ホストごと)。〜の後。最後に、Host *
ファイルの最後に「一般」キーを指定して試すことができるセクションがあります。最後。後でファイルに表示される可能性のある特定のパラメーターをオーバーライドしたい場合。誰か(あなたを含む)が後でファイルでそのパラメータを設定しようとした場合(下記のように
Host y
)、その試みが無駄になっていることを確認したいと想像してください。しかし、これは容易に欲求不満につながる可能性があります。欲しいなら一時的にファイルの後半に表示されるいくつかのパラメーターをオーバーライドします。これを行うには、
Host *
ファイルの終わりではなく一時的なセクションを作成し、上記のプロセス(セクションを最後に移動)を適用しないでください。簡単に言えば、変更を簡単に元に戻したいからです。セクションを削除して構成ファイルの以前の状態を復元します。このプロセスを適用すると、他のセクションの一部の所有権の主張が削除される可能性があり、回復は容易ではありません。