Bash从ssh配置文件中提取特定主机的用户

Jam*_*nes 4 ssh bash sed

我正在编写一个bash脚本,我需要从ssh配置文件中获取特定用户。ssh配置文件看起来像这样:

HOST blag
    HostName blag.net.au
    Port 2683
    User blaguser
Host bloo
  User ABCDEF
  IdentityFile ~/.ssh/id_rsa
HOST biff
    HostName biff.net.au
    Port 2683
    User biffuser
Run Code Online (Sandbox Code Playgroud)

我想通过搜索Host bloo获得字符串'ABCDEF'并将其放入变量中。

我能够在https://superuser.com/questions/791374/get-variable-values-from-config-file/791387#791387?newreg=6626dd5535194d0180a91b6ace31e16f使用答案来读取配置文件,但它使用文件中的最后一个主机条目。

我可以使用以下答案删除主机条目:如何从ssh配置文件中删除主机条目?。此处的sed命令可以进行编辑以提取正确的命令,User但我不确定确切如何

我有很多麻烦。有人可以协助吗?使用sed的答案会更好。

Jak*_*uje 5

You can use ssh configuration test mode to parse the configuration file and return you the expected value:

ssh -G hostname | grep "^user "
Run Code Online (Sandbox Code Playgroud)

此后应该可以使用openssh-6.8