展開されたホスト名のSSH構成ワイルドカード


25

特定のドメインのすべてのホストに対して、デフォルトのユーザー名を特定の値に設定するために、SSH構成にワイルドカードを使用したいと思います。ただし、特定のホストの短い名前も必要です。私はこのようなものが機能することを期待していました:

Host *.mydomain.com
    User myusername
Host host1
    Hostname host1.mydomain.com

これらの設定では、入力ssh host1.mydomain.comすると評価されますが、myusername@host1.mydomain.com入力ssh host1してもユーザー設定は適用されず、代わりにが表示されmylocalusername@host1.mydomain.comます。

最終的な拡張ホスト名でワイルドカードを一致させる方法があるので、短い形式または長い形式を入力して同じ結果を得ることができますか?


ワイルドカードセクションを2番目に配置して順序を切り替えた場合はどうなりますか。
14

試しましたか?ドメインが間違っていても、正しいユーザー名を取得できると確信しています。
ムーマインド

私はそれを試したことはありません。だからこそ、私はそれを、ダウンボート可能な答えの代わりに、試してみたいものとしてコメントの答えにしました。
14年

回答:


13

単に使用します:

Host *.mydomain.com host1
User myusername

Host host1
Hostname host1.mydomain.com
  • 代替パターンは、ホスト行の区切りブランクによって提供されます。
  • 一致するすべてのホストパターンが適用されます。
  • オプションが複数回発生する場合、最初の発生のみが使用されます

3
それは少なくとも少しの入力を節約します。ドメイン情報の重複を避ける方法を知らないようですね。
ムーマインド

SSHが、構成ファイルにハードコーディングする代わりに、デフォルトドメイン(「lan」または「mycompany.com」)を追加しようとすることができれば素晴らしいでしょう。
ザウストラップ

18

エイリアスの正規のホスト名でssh_configを再解析CanonicalizeHostnameするyesように設定するだけです。例えば:

CanonicalizeHostname yes
Host *.mydomain.com
    User myusername

Host host1
    HostName host1.mydomain.com

または、ホスト名も再マップする場合は、Match代わりにHost正規のホスト名のみを一致させるために使用できます。たとえば、

Match canonical host="*.mydomain.com"
    User myusername

Host host2.mydomain.com
    HostName host2.otherdomain.com

に接続するときに、ユーザーディレクティブは設定されませんhost2.mydomain.com


これらのオプションをサポートしないsshの古いバージョンがまだ存在することに注意してください-これらのオプションのいずれかに遭遇した場合、ホストソリューションは引き続き機能します。
キルステライン

2

CanonicalDomainsを使用しても機能します。

CanonicalizeHostname yes
CanonicalDomains mydomain.com

Host *
User myusername

特定のホストに短い名前を付けたい場合、例えば:

Host h
Hostname host1

ただし、これほど短い名前はお勧めしません。


1

.ssh / configで%h.mydomain.comを使用できます。


 Host host?
 User myusername
 Hostname %h.mydomain.com

Host host?? User myusername Hostname %h.mydomain.com

Host host??? User myusername Hostname %h.mydomain.com

できるようになりました:

ssh host1
の代わりに
ssh host1.mydomain.com
ssh host10
の代わりに
ssh host10.mydomain.com
およびssh host100

よろしく、バート

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.