首页 > 解决方案 > 从 bash 和 python 访问 ~/.ssh/config 别名

问题描述

我使用 ~/.ssh/config 来管理我需要经常与之交互的主机。有时我想在不直接使用 ssh 的脚本中访问该文件的别名,即如果我有一个 .ssh/config

Host host1
  User user1
  Hostname server1.somewhere.net

我希望能够说一些类似于sshcfg['host1'].Hostname脚本server1.somewhere.net语言的东西,特别是 Python 和 Bash 中的一些明智的东西。

如果可能的话,我更愿意使用标准工具/库来做到这一点。我也更喜欢从环境中自动检测当前配置的工具,而不是必须明确指向配置文件。我不知道是否有办法在 ssh 中使用备用配置,但如果有的话,我想要一种自动检测当前活动配置的方法。否则,只需默认为“~/.ssh/config”即可。

标签: bashsshpythonssh-config

解决方案


可以在命令行上指定替代配置文件,但 ~/.ssh/config 始终是默认配置文件。对于替代配置文件,请使用该-F configfile选项。

您可以尝试解析原始配置文件,或者拥有一个更适合操作的文件并从中生成替代配置文件或默认配置文件的一部分。


推荐阅读