如何显示主机/已配置/默认ssh“配置”?


17

根据我的ssh_config档案...

配置数据解析如下:

  1. 命令行选项
  2. 用户专用文件
  3. 系统范围的文件

这样说(是的,我知道,我可以搜索man ssh_configAND man ssh,和(希望)记录的默认值。)如何为所有当前设置“打印”活动配置。例如,类似...

ssh -o Tunnel=ethernet servername -p 2210 --print-config

SSH-2.0-OpenSSH_7.0
 Command Line Options
   Port 2210
   Host servername
 Command Line Configurations
   Tunnel Ethernet
 Config File
   ...
 SSH Defaults
   ...
   AddressFamily any (???)
   BatchMode no
   ...

这将使您明确地确切知道设置的内容以及原因。我AddressFamily特别指出了这一点,因为它是配置选项的一个完美示例,没有记录的默认值。从man ssh_config...

指定连接时要使用的地址系列。有效参数为anyinet(仅使用IPv4)或inet6(仅使用IPv6)。

啊! 感谢您提出的建设性建议(不只是一堆RTFM的)。🙉


参考这篇文章sshd使用配置文件覆盖其内部默认值,该默认值在全新安装后显示在
常规

1
@gwillie注意:ssh_config!= sshd_config
EEAA

有什么关系,没有办法做,当我不得不做的时候我写了一个脚本,只是确保您以正确的顺序解析文件
gwillie 2015年

在Mac OS X上,不幸的是,“可用”配置文件中只提到了许多可用选项的一小部分。
mralexgray 2015年

Answers:


26

-G最近的openssh中有一个选项,其行为与-T服务器端类似。

-G使ssh在评估Host和Match块并退出后打印其配置。

通过调用,ssh -G host您将获得用于连接到特定主机的选项,这对于调试中的条件匹配项很有帮助ssh_config

此外,设置更详细的日志级别(-vvv)有助于调试配置解析器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.