回答:
以下のようgelraen述べデフォルトssh_config
の正規表現をサポートしていませんが、あなたは次のように何か別のを試すことができます。
のPATTERNS
セクションをご覧くださいman ssh_config
。
長い答えは次のとおりです。いいえ、ssh
サポートするためにパッチを適用しない限り、できません。
で完全な正規表現を使用できますssh_config
。
関連するドキュメントは、IMOを読んで理解するのが非常に困難です。私が理解しているのは、13年以上のLinuxの経験と8年以上のLinuxの使用経験があるためssh
です。だからここにドキュメントの私の要約があります:
man ssh_config
という機能について説明します Match
exec
、任意のシェルコマンドを使用して一致を判断できる機能がありますTOKENS
私の場合、私は私ので使用することになりました~/.ssh/config
:
Match exec "echo %h | grep -q 'NAME[0-9]\+$'"
User USER
IdentityFile /path/to/identity/file
Hostname %h.fully.qualified.domain.name
このようなトリッキーなテストを行う必要があります。そして、あなたが呼び出すテストを行うためにssh -vvv HOSTNAME
。何が起こっているのか、そして新しいものMatch
が正しく実装されているかどうかを正確に示します。
Trevorからの答えを拡張する:
より複雑なホストは、マッチングのようなことも可能であるfoo123.123
し、foo10.10
一つのルールにWITHOUT使用ホスト名のDNSエントリを有します。
Match exec "echo %h | grep -q 'foo[0-9]\+.[0-9]\+$'"
Port 1234 # just to show it can be paired with non-default ports too,
# see %p in man ssh_config
ProxyCommand /usr/bin/nc 10.10.$(echo %h | sed -e 's/foo//') %p
ProxyCommandを使用してシェルで%hのコンテンツを操作し、netcatを介して適切なポートに接続します。これにより、個々のエントリを作成せずに、ホストのカテゴリのプリセットを作成できます。
man ssh_config
。