SSH設定エラーを無視できますか?

SSH設定エラーを無視できますか?

DockerコンテナでUbuntuイメージを実行し、デフォルトのMacOS環境で.sshディレクトリをマウントしています。

私の.ssh/configファイルには次のものが含まれています。

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519_common

これはMacではうまく機能しますが、AddKeysToAgentとUseKeychainはLinuxに影響を与えず、openssh-clientパッケージ(gitなど)を使用するすべての項目は認識できないディレクティブを無視するだけでなく、失敗して終了します。

MacとLinuxの間で.ssh / configファイルを共有する方法はありますか?

ベストアンサー1

Matchキーワードを使用できます。SSH構成特定の条件でのみ適用されるように構成の一部を制限するファイル。質問から抜粋した内容は、次のように機能します。

Host *
    AddKeysToAgent yes
    IdentityFile ~/.ssh/id_ed25519_common

Match exec "uname -s | grep Darwin"
    UseKeychain yes

Linuxシステムではgrep失敗(1)が返されるため、Macホストでは次の行が無視され、grepは成功(0)を返し、その行が適用されますUseKeychain yes

ブロックはファイルの次または終わりで終了しますMatchMatchHost

これはAddKeysToAgentプラットフォームによって異なりますが、バージョン7.2以降、OpenSSHで使用できるため、Ubuntuコンテナでは以前のバージョンのOpenSSHを使用していますが、Macホストでは使用できない可能性があります。

おすすめ記事