GNU/Linux >> Linux の 問題 >  >> Linux

~/.ssh/config ファイルを複数持つことはできますか?

解決策 1:

~/.ssh/config ファイルには、他のファイルを含めるためのディレクティブがありません。これは、SSH のファイル アクセス許可のチェックに関連している可能性があります。

これに関する提案には、システム上またはリポジトリのチェックイン フックを介して複数の変更をまとめるスクリプトを含めることができます。 Puppet や Augeas などのツールを検討することもできます。

ただし、どのようにアプローチしても、ファイルの外部から個々のファイルを連結して 1 つのファイルにする必要があります。

$ cat ~/.ssh/config_* >> ~/.ssh/config

注: 上書き:> 追加:>>

2017 年 12 月の更新:

7.3p1 以降には、Include オプションがあります。これにより、構成ファイルを含めることができます。

Include
    Include the specified configuration file(s).  Mul‐
    tiple pathnames may be specified and each pathname
    may contain glob(3) wildcards and, for user config‐
    urations, shell-like “~” references to user home
    directories.  Files without absolute paths are
    assumed to be in ~/.ssh if included in a user con‐
    figuration file or /etc/ssh if included from the
    system configuration file.  Include directive may
    appear inside a Match or Host block to perform con‐
    ditional inclusion.

解決策 2:

次のように、ssh オプションで使用する現在の構成ファイルを指定できます:

ssh -F /path/to/configfile

それが唯一の方法のようです.

また、1 つの構成を別の構成に含める方法もありません。

解決策 3:

ssh 7.3 (2016 年 8 月 1 日にリリース) 以降、Include ディレクティブが利用可能です。

<ブロック引用>

含む :指定された構成ファイルを含めます。複数のパス名を指定でき、各パス名にはグロブワイルドカードとユーザーのホームディレクトリへのシェルのような「~」参照を含めることができます。絶対パスのないファイルは ~/.ssh にあると想定されます . Include ディレクティブは Match 内に表示される場合があります または Host ブロックして条件付き包含を実行します。

(パッチを含む解決済みのバグ レポートへのリンクは次のとおりです:https://bugzilla.mindrot.org/show_bug.cgi?id=1585#c24)

解決策 4:

私は個人的にこれらのコマンドを使用して ssh 構成をコンパイルします:

alias compile-ssh-config='echo -n > ~/.ssh/config && cat ~/.ssh/*.config > ~/.ssh/config'
alias ssh='compile-ssh-config && ssh'
# (This will get used by other programs depending on the ~/.ssh/config)
# (If you need you can run the compile-ssh-config command via cron etc.)

または:

alias compile-ssh-config='echo -n > ~/.ssh/config-compilation && cat ~/.ssh/*.config > ~/.ssh/config-compilation'
alias ssh='compile-ssh-config && ssh -F ~/.ssh/config-compilation'
# (This is saver and won't over write an existing ~/.ssh/config file)

理由:

alias ssh='ssh -F <(cat .ssh/*.config)'

戻ります:

ssh: Can't open user config file /dev/fd/63: Bad file descriptor

これがお役に立てば幸いです。

解決策 5:

cat config_* > config も使用します 構成全体を生成します。しかし、puppet/cfengine などがまだ配置されていない場合は、これには使用しません (ところで:構成管理システムを使用しないのはなぜですか?)。

パッケージ (deb、rpm) を生成し、ローカル リポジトリに配置します。 postinst スクリプトでは、cat が構成を生成します。おそらく、ローカル フォルダーも含めるとよいでしょう...利点は、cron-apt &Co の実行中に、ssh/config の更新が毎日ベースでアクティブになることです。


Linux
  1. サーバーをラックに入れたことはありますか?

  2. プレーンテキスト以外のパスワードを保存するにはどうすればよいですか?

  3. 複数の引数の xargs 置換

  1. スコープ ID を持つ IPv6 アドレスを ssh 構成ファイルに追加するにはどうすればよいですか?

  2. Linux の ssh 構成ファイルのデフォルト以外の場所

  3. Linux で 2 GB を超えるファイルを作成できないのはなぜですか?

  1. Dfによると、Duよりも20g多くのディスクスペースが使用されています。なぜ??

  2. >&-は> / dev / nullよりも効率的ですか?

  3. 単純なボンド スループットに困惑し、ギグ以上は得られない