ssh_configに複数の「ホスト*」がありますか?

ssh_configに複数の「ホスト*」がありますか?

~/.ssh/configの仕組みについて私が理解したのは、各「ホスト」行が設定ファイルの対応するポイントの後に一致するすべてのホストに適用されることです。

接続する必要がある個人やビジネスサーバーがたくさんあります。私は次のことをしようとします:

#一般設定
コントロールマスターカー
ControlPath ~/.ssh/controlmaster/%r@%h:%p
順方向プロキシは
ForwardX11は
GSSAPI認証なし
公開鍵認証は

#個人サーバー
オーナー*
ユーザーharleypig
IDファイル~/.ssh/personal_id_rsa

ホストホスト1
ホスト名host1.com

ホストホスト2
ホスト名host2.com

#稼働中のサーバー
オーナー*
ユーザー alan.young
IDファイル~/.ssh/work_id_rsa

ホスト作品1
ホスト名work1.companyserver.com

ホストタスク2
ホスト名work2.companyserver.com

オーナー*
ユーザーディバイザー

ホスト開発1
ホスト名 dev1.companyserver.com

ホスト開発2
ホスト名 dev2.companyserver.com

ドキュメントは、host1とhost2が "personal_id_rsa"とユーザーharleypigを使用する必要があることを示すようです。 work1、work2、dev1、および dev2 は "work_id_rsa" を使用し、最初の 2 つはユーザー "alan.young" でなければならず、dev1 および dev2 は "devuser" ユーザーでなければなりません。

しかし、これは起こりませんでした。私が最初に入力した「ホスト*」は、次のホストがすべて接続しようとしているホストです。私が何かを間違って理解したか逃したのですか?

ベストアンサー1

~からssh_config手動:

各パラメータで最初に取得した値を使用するため、ファイルの先頭にはより多くのホスト固有の宣言を提供し、最後に一般的なデフォルト値を提供する必要があります。

したがって、あなたの例では、すべてのホストUser harleypigがとを使用しますIdentityFile ~/.ssh/personal_id_rsa

ワイルドカードを含むディレクティブを代替Hostエントリとして扱います。次の設定が設定されていない場合にのみ使用されます。次のように書く必要があります。

Host host1
Hostname host1.com
Host host2
Hostname host2.com
Host host*
User harleypig
IdentityFile ~/.ssh/personal_id_rsa

Host指定されたホストエイリアスセットをワイルドカードで一致させることができない場合は、複数のパターンを1行に入力できます(例:)Host host* more* outlier

おすすめ記事