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
。
ブロックはファイルの次または終わりで終了しますMatch
。Match
Host
これはAddKeysToAgent
プラットフォームによって異なりますが、バージョン7.2以降、OpenSSHで使用できるため、Ubuntuコンテナでは以前のバージョンのOpenSSHを使用していますが、Macホストでは使用できない可能性があります。