我想解析.ssh/config
文件中包含的代理信息,并将每个具有相关代理信息的主机与代理信息一起显示。应该过滤掉没有任何代理信息的主机。手册页.ssh/config
:http ://man-wiki.net/index.php/5:ssh_config
这应该通过 Bash 下的 Unix shell 脚本完成,因此首选 Perl、awk 或 sed 等标准工具。
示例输入文件:
Host ssh.foo.com
User ssh
HostName ssh.foo.com
Port 443
ProxyCommand /usr/local/bin/corkscrew proxy 8080 %h %p ~/.ssh/proxyauth
Host ci
HostName 127.0.0.2
User ci
Host nightly
HostName 192.168.1.1
User goodnight
Host foobar.org
User git
HostName foobar.org
Port 443
ProxyCommand /usr/local/bin/corkscrew proxy 8080 %h %p ~/.ssh/proxyauth
Host integration
HostName 192.168.1.2
User int
预期的输出应如下所示:
Host: ssh.foo.com - Proxy: /usr/local/bin/corkscrew proxy 8080 %h %p ~/.ssh/proxyauth
Host: foobar.org - Proxy: /usr/local/bin/corkscrew proxy 8080 %h %p ~/.ssh/proxyauth
这里的困难是搜索必须覆盖多行。