~/.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
。